我正在尝试在我的 Django 网站中实现 Telegram 登录小部件。我正在使用 django-allauth,并且在我使用 Firefox 浏览器进行的测试中登录确实有效,但它无法在移动设备和 Chrome 桌面上工作。在 Telegram Messenger 中输入我的电话号码并确认登录后,授权对话框就会消失。
类型错误:无法读取 null 的属性(读取“postMessage”)<html>
<body>
<div>
<script async src="https://telegram.org/js/telegram-widget.js?21" data-telegram-login="NameOfTelegrambot" data-size="medium" data-userpic="false" data-auth-url="https://example.com/accounts/telegram/login/"></script>
</div>
</body>
</html>
使用 Firefox 浏览器登录,我可以看到:
已成功以 TelegramUserName 身份登录。
用户名显示在右上角,如“django-classified”所示
但在 Chrome 或我测试过的一些流行的移动浏览器中不会发生这种情况。
在
.env
文件中提供一些 Telegram Bot 令牌后,可以通过 docker compose 文件来测试可以在本地运行的设置。
我也遇到这个问题了。 经过漫长的调试过程,我发现只需要在Django配置文件中配置以下内容即可:SECURE_CROSS_ORIGIN_OPENER_POLICY = "same-origin-allow-popups"
这应该可以解决问题。这个问题出现已经有一段时间了;我不确定它是否还能帮助你。 祝下一个面临这个问题的人好运。