我有一个 django 项目,其中使用 django-social-auth 来实现 google 和 facebook。
从侧面来看,它似乎工作得很好,因为我已经能够使用它注册和登录。 然而,当我将 google API 投入生产时,我收到了错误:mismatch_url。
在凭证 => 授权重定向 URI 中,我有这个 url:
https://www.swimseekr.com/social-auth/complete/google-oauth2/
但是当我尝试登录时,谷歌给了我这个错误:它显示了一个http url:
您无法登录此应用,因为它不符合 Google 的 OAuth 2.0 政策。
如果您是应用程序开发人员,请在 Google 中注册重定向 URI 云控制台。请求详情: redirect_uri=http://www.swimseekr.com/social-auth/complete/google-oauth2/
因此,如果我返回测试模式,并从 http 中删除“s”,然后尝试登录,它会再次工作。
有人可以帮我吗?
谢谢你。
您可能会考虑检查“request.is_secure()”返回“True”的 Django 设置,并确保您的设置允许 HTTPS 重定向,因为您提到它适用于 HTTP。
在 Google 方面(OAuth 2.0),确保 OAuth 同意屏幕已完全设置且正确。您的应用程序的状态应为“生产中”
出于故障排除目的,我建议清除浏览器缓存或尝试隐身模式禁用所有插件。作为附加测试,您可能想尝试注册“http”和“https”以消除这种可能性。随附的补充参考文档可能对您的用例有所帮助。 [1][2]
[1] https://developers.google.com/identity/protocols/oauth2
[2] https://python-social-auth.readthedocs.io/en/latest/configuration/django.html
我也有同样的问题,请问如何解决?添加 SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') 和 ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https' 不起作用,仍然返回redirect_uri=http