Django Allauth + Google OAuth重定向URI配置问题求助
解决Google Cloud App Engine Django应用OAuth2 redirect_uri不匹配问题
1. 配置Google Cloud OAuth2客户端ID的redirect_uri
你提到找不到配置入口,实际正确操作路径如下:
- 登录Google Cloud控制台,进入Credentials页面(IAM & Admin > Credentials)
- 在OAuth 2.0 Client IDs列表中找到你的客户端ID,点击进入编辑页
- 在Authorized redirect URIs区域,点击Add URI,添加云端回调地址:
https://mydomain.com.br/accounts/google/login/callback - 同时保留本地调试用的URI(比如
http://localhost:8000/accounts/google/login/callback),方便本地开发 - 点击Save保存配置
2. 修正Django allauth的配置
你当前在AUTH_PARAMS里硬编码redirect_uri的方式会导致冲突,allauth会自动根据站点域名生成回调地址,无需手动设置。修改配置如下:
SOCIALACCOUNT_PROVIDERS = { 'google': { 'SCOPE': [ 'profile', 'email', ], 'AUTH_PARAMS': { 'access_type': 'online' # 移除此处的redirect_uri配置 } } }
3. 确保Django站点模型配置生效
之前修改站点值无效,可能是未正确同步或配置:
- 登录Django admin后台,找到Sites模块(位于"sites"分组下)
- 点击ID为1的站点,将Domain name改为
mydomain.com.br,Display name同步修改 - 保存后运行
python manage.py migrate,确保变更同步到数据库(云端部署时可通过Cloud Shell执行该命令) - 保持
settings.py中SITE_ID = 1的配置不变
4. 验证与部署
- 本地测试:启动Cloud SQL Proxy后运行
python manage.py runserver,确认本地登录流程正常 - 云端部署:重新部署App Engine应用,部署完成后清除浏览器缓存,测试Google登录功能
若仍有问题,可排查以下点:
- 确认Google Cloud控制台的redirect_uri与实际回调地址完全一致(包括协议、域名、路径,无多余斜杠)
- 检查App Engine域名映射是否正确,确保
https://mydomain.com.br可正常访问 - 查看App Engine日志(App Engine > Logs),排查是否存在其他错误信息
内容的提问来源于stack exchange,提问作者Alex Afonso dos Santos
相关产品推荐
相关产品推荐

