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

使用django-allauth实现谷歌登录后跳转出现Not Found错误如何解决

可行解决方案

你可以按照以下优先级逐一排查修复:

1. 修正SITE_ID对应站点配置

开发环境默认的SITE_ID=1对应的站点域名通常是127.0.0.1:8000,部署后需要修改为实际站点域名:

  • 进入Django后台的「站点(Sites)」管理页
  • 找到id=1的站点,将域名修改为你实际部署的域名,不要带http/https前缀、不要加尾部斜杠,比如填写example.com即可
  • 保存后清除Django缓存重试

2. 核对反向代理配置

如果用Nginx、Apache等反向代理部署,需要确保两个配置正确:

  • 代理请求时携带原始Host头,Nginx配置示例需加入:proxy_set_header Host $host;
  • 如果站点部署在子路径下,需确认路径重写规则正确,不会截断/accounts/开头的请求路径

3. 确认谷歌回调URI完全匹配

谷歌云控制台的授权重定向URI必须严格和实际回调地址一致,注意尾部斜杠不能省略,格式为:
https://你的实际域名/accounts/google/login/callback/
哪怕差一个字符、协议不一致、少一个斜杠都会导致路由匹配失败。

4. 调整URL配置优先级

检查项目根路由的urlpatterns顺序,确保path('accounts/', include('allauth.urls'))放在所有其他accounts/前缀的路由之前,避免被更高优先级的自定义路由拦截匹配,导致404。

5. 临时开启DEBUG定位问题

排查阶段可临时将settings.py中的DEBUG改为True,复现问题时可以看到Django输出的实际请求路径、匹配失败的路由列表,快速定位问题根因,排查完成后立刻将DEBUG改回False避免安全风险。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:36:03