Я сотрудничаю с кем-то, кто разработал страницу портала, которая содержит ссылки на приложения. При нажатии на ссылку мое приложение загружается в iFrame и в URL добавляется? Tonkenid; Я не контролирую страницу портала. Я хотел бы получить атрибут src iFrame и проанализировать токен, так как он мне нужен, чтобы использовать его из моего приложения, загруженного в iframe, для выполнения вызовов API.
Просто чтобы прояснить, вот что у меня есть, после аутентификации на портале:
Портал (после проверки подлинности)
я-кадр
Здесь загружено мое приложение. Когда я проверяю соответствующую часть в браузере, я получаю это:
<body>
<div id="content">
<iframe id="module" src="https://www.myappurl.com/?tokenid=.eJwty8GKgzAQANB_mbMUjWmS8bT_URaZmFEGYlwcw1ZK_72y7PEd3gskcTnkOGF4wb5lVhgeEKvkJGUZVyq08A7fDRznD8MAVS82UCVdyFV0laVyvsVMhXVnPbbzq1RZKP_SeROGdwNKax4LrTz-Nd8itXNMFl2P5Hg2NnjDPPk4JWPu3qPHmRP8T2VV2cqVn9ce78725HzfTTx7tC3G1KLpU0wdOofOMrvQhRAsvD8ho0j5.XNrWyw.8IMfiT9YcfZKGbqedHOHYyDnjVg">
</div>
</body>
Так что мне нужно получить этот токен, который генерируется и добавляется порталом из самого приложения. Я попробовал много рецептов, и это кажется невозможным. Я попробовал это:
<script>
function myFunction() {
var res = window.parent.document.getElementById('module')src;
document.getElementById("demo").innerHTML = res;
}
</script>
но это дает мне
SecurityError: В доступе отказано в доступе к свойству "document"
объект перекрестного происхождения
Я также попытался с запросами Python и urrlib безуспешно. Есть ли другой рецепт для приложения на основе Django, чтобы удалить это ?tokenid
Я также пытался использовать методы Django здесь, в , перечисляя 2-9 следующим образом:
class PortalTokenid(generic.TemplateView):
template_name = "rom/tokenid.html"
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(**kwargs)
context['portaltokenid'] = self.request.GET.get('portaltokenid', '')
return context
и в шаблоне tokenid.html:
<ul>
{% for key, value in context.items %}
<li>{{key}} : {{value}}</li>
{% endfor %}
</ul>
<p style="color: green">{{ context.portaltokenid }}</p>
<p style="color: green">{{ context }}</p>
Но я не вижу ничего визуализированного в шаблоне.