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

使用django-oauth实现Django Google登录注册时出现redirect_uri_mismatch错误

问题原因

redirect_uri_mismatch 报错的核心逻辑是谷歌校验时认为请求中的回调地址和后台配置的地址完全不相等,哪怕只有一个字符的差异都会触发报错,你遇到的情况大概率是以下几种原因:

  • 地址内容不匹配:你后台配置的是localhost开头的地址,但实际请求的是127.0.0.1开头的地址,谷歌OAuth会把这两个视为完全不同的地址;或者配置的地址缺少末尾的/、协议不一致。
  • 配置未生效:谷歌云后台修改授权回调地址后,需要3-5分钟的同步时间,刚改完就测试会触发报错。
  • Django配置异常:Django侧的配置导致生成的回调地址不符合预期。

解决方法

  1. 完全复制报错信息里的回调地址http://127.0.0.1:8000/accounts/google/login/callback/,粘贴到谷歌云凭证的「授权重定向URI」列表中,确保没有任何字符差异,包括末尾的斜杠、http协议、IP地址不要替换为localhost,保存配置。
  2. 保存后等待5分钟再测试,避免配置未同步导致的报错。
  3. 检查Django项目的settings.py配置:
    • 确保ALLOWED_HOSTS列表中包含127.0.0.1
    • 如果你使用django-allauth实现OAuth,确保INSTALLED_APPS中添加了allauth.socialaccount.providers.google,且SITE_ID配置正确
    • 如果你本地有反向代理配置,添加以下参数确保Django能识别正确的协议和域名:
    USE_X_FORWARDED_HOST = True
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
    
  4. 本地启动项目时统一使用python manage.py runserver 127.0.0.1:8000命令,避免访问时自动跳转到localhost导致地址不匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 11:12:00