You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google OAuth 2.0本地正常,部署后出现redirect_uri_mismatch错误求助

Django AllAuth Google OAuth 部署后 redirect_uri_mismatch 解决办法
  • 检查Django站点与AllAuth协议配置

    1. 登录Django Admin,找到Sites模块,将对应SITE_ID的域名修改为yukkiewqr.eu.pythonanywhere.com(不要带http/https前缀)。
    2. 在settings.py中设置ACCOUNT_DEFAULT_HTTP_PROTOCOL = 'https',确保AllAuth生成HTTPS协议的重定向地址。
    3. 检查SOCIALACCOUNT_PROVIDERS的Google配置,不要硬编码本地的redirect_uri,让插件自动生成,示例配置:
      SOCIALACCOUNT_PROVIDERS = {
          'google': {
              'SCOPE': ['profile', 'email'],
              'AUTH_PARAMS': {'access_type': 'online'},
          }
      }
      
  • 验证Google控制台重定向URI

    1. 确认Google OAuth客户端的重定向URI完全匹配实际回调地址:https://yukkiewqr.eu.pythonanywhere.com/google/login/callback/(注意结尾斜杠必须保留)。
    2. 无需添加根域名(https://yukkiewqr.eu.pythonanywhere.com/),AllAuth仅使用callback地址完成授权流程。
    3. 修改配置后保存,等待1-2分钟让Google缓存更新(部分场景下缓存延迟会导致问题)。
  • 清除缓存与会话

    1. 运行命令python manage.py clearcache清除Django内部缓存。
    2. 让测试用户清除浏览器Cookie和缓存,或使用无痕模式测试,避免旧地址被浏览器缓存。
  • 适配PythonAnywhere主机配置
    在settings.py中添加以下配置,确保Django正确识别HTTPS请求:

    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    

    同时确认ALLOWED_HOSTS包含yukkiewqr.eu.pythonanywhere.com。

  • 排查实际请求参数
    打开浏览器开发者工具(F12)的Network标签,点击Google登录按钮,查看跳转请求中的redirect_uri参数,确认其与Google控制台配置完全一致。若不一致,回到站点配置步骤重新检查。

内容的提问来源于stack exchange,提问作者Yuki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:53:19