Django allauth谷歌OAuth重定向URI不匹配错误

13
我正在为我的Django应用(通过allauth包)使用Google OAuth。
我已经遵循了所有标准配置步骤。在Google开发者控制台中,这是我的设置: 已授权的JavaScript来源
https://example.com  

授权重定向URI

https://example.com/accounts/google/login/callback/ - login fails
http://example.com/accounts/google/login/callback/ - login succeeds

我注意到如果在“授权重定向URI”中使用了一个https重定向URL,它不允许登录,并显示redirect_uri_mismatch错误。只有当我使用http重定向URL时,登录才会成功。

我需要做什么才能启用https重定向URL?

3个回答

26

在生产环境的settings.py中添加以下内容,可以解决我的问题:

ACCOUNT_DEFAULT_HTTP_PROTOCOL='https'


谢谢。不知何故,同样的代码在我的本地主机上可以运行,但在生产环境中失败了,这是让我摆脱困境的修复方法。 - Kim Stacks
我给你发了一份赏金,让你的积分超过1k。这是我的感谢之意。我忘记提到我的社交平台是GitHub,所以你的QnA对我来说是同样的问题,也有同样的解决方法。 - Kim Stacks
1
你在哪里找到这个设置的? - E_K
这非常有用,而且非常隐蔽。你在哪里找到它的?没有这个,Google OAuth 就无法正常工作。 - John

1

请在urls.py中检查您的URLS。 - Vishal Kumar

0

在我的情况下,问题出在以下方面:

  1. 我的网站切换到了仅支持HTTPS连接,而在Google API控制台中是 http://profile.example.com/accounts/google/login/callback/
  2. 所以,我将 http 改为 https,然后它开始正常工作。 enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接