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

使用dj-rest-auth时邮箱验证请求出现404错误的排查求助

404错误原因分析及排查建议

原因分析

  1. 路由配置缺失:dj_rest_auth.registration.urls仅包含注册相关路由(如POST /register/),邮箱验证的verify-email POST端点实际属于dj_rest_auth.urls模块。若主urls未引入该模块,会导致目标请求路径不存在。
  2. 请求路径错误:若未正确配置dj_rest_auth.urls的挂载路径,错误请求/register/verify-email/而非实际生效的路径(如/auth/verify-email/或/verify-email/),会触发404。
  3. 配置逻辑冲突:ACCOUNT_CONFIRM_EMAIL_ON_GET = True时,系统默认通过GET请求完成邮箱验证,若强行发送POST请求到未配置的路径,会直接返回404。

排查建议

  • 补全路由配置:在主urls.py中添加dj_rest_auth.urls的引用,示例:
    urlpatterns = [
        # 其他路由...
        path('register/', include('dj_rest_auth.registration.urls')),
        path('auth/', include('dj_rest_auth.urls')),  # 添加该路由引用
    ]
    
    此时正确的POST验证端点为/auth/verify-email/。
  • 核对请求路径:确认前端请求的URL与实际注册的路由一致,可通过python manage.py show_urls(需提前安装django-extensions)查看所有生效路由,验证verify-email端点的存在及准确路径。
  • 调整邮箱验证方式:
    • 若移动端需用POST请求验证,将ACCOUNT_CONFIRM_EMAIL_ON_GET设为False,并确保前端从邮件中提取key参数后,发送包含key字段的POST请求到正确端点。
    • 若无需POST验证,保持ACCOUNT_CONFIRM_EMAIL_ON_GET = True,引导用户点击邮件中的GET链接完成验证即可。
  • 检查版本兼容性:确认dj-rest-auth版本与配置匹配,部分旧版本的verify-email端点可能仍在registration.urls中,可查阅对应版本的官方文档确认路由结构。
  • 排查路由冲突:检查项目中是否有自定义路由或其他第三方库的路由与verify-email路径冲突,导致该端点被覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:26:08