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

Django教程2中管理员登录遇CSRF验证失败(403)问题求助

Django Admin登录CSRF验证失败(Cookie未设置)问题排查

正在学习Django教程2,登录管理员页面时触发403错误,提示CSRF验证失败,原因是CSRF cookie未设置。尝试多种方法后仍未解决,相关日志和报错信息如下:

命令行日志

System check identified no issues (0 silenced).
May 24, 2024 - 14:14:40
Django version 5.0.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

[24/May/2024 14:14:46] "GET /admin/ HTTP/1.1" 302 0
[24/May/2024 14:14:46] "GET /admin/login/?next=/admin/ HTTP/1.1" 200 4158
Forbidden (CSRF cookie not set.): /admin/login/
[24/May/2024 14:14:49] "POST /admin/login/?next=/admin/ HTTP/1.1" 403 2869

浏览器报错信息

Forbidden (403)

CSRF验证失败,请求中止。

您看到此消息是因为本网站提交表单时需要CSRF Cookie,这是出于安全考虑,防止浏览器被第三方劫持。

如果您的浏览器已禁用Cookie,请重新启用,至少允许此站点或“同源”请求的Cookie。

帮助

失败原因:
CSRF cookie未设置。

通常这种情况可能是真的存在跨站请求伪造,或者Django的CSRF机制未被正确使用。对于POST表单,您需要确保:
• 浏览器接受Cookie。
• 视图函数将request传递给模板的render方法。
• 模板中,每个指向内部URL的POST表单内都有{% csrf_token %}模板标签。
• 如果未使用CsrfViewMiddleware,则必须在所有使用csrf_token模板标签的视图和接收POST数据的视图上使用csrf_protect装饰器。
• 表单拥有有效的CSRF令牌。在其他浏览器标签登录后或登录后点击返回按钮,可能需要重新加载表单页面,因为登录后令牌会更新。

您能看到此帮助部分是因为Django设置文件中DEBUG = True,改为False后将只显示初始错误消息。
您可以通过CSRF_FAILURE_VIEW设置自定义此页面。

排查与解决步骤

  • 检查浏览器Cookie权限:确认当前浏览器允许127.0.0.1:8000站点的Cookie,可在浏览器设置中将该站点添加为信任对象,开启Cookie权限。
  • 验证Django中间件配置:打开mysite/settings.py,确保MIDDLEWARE列表中包含django.middleware.csrf.CsrfViewMiddleware,且顺序在SessionMiddleware之后、AuthenticationMiddleware之前:
    MIDDLEWARE = [
        ...
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        ...
    ]
    
  • 清除浏览器缓存与Cookie:手动清除当前浏览器的缓存和Cookie,重启浏览器后重新访问登录页面。
  • 重启开发服务器:停止当前Django开发服务器(按CTRL-BREAK),彻底关闭后重新启动,避免进程残留导致的异常。
  • 检查自定义模板(如有):如果修改过admin登录模板,确认表单内部已添加{% csrf_token %}标签;默认admin模板无需修改可跳过此步。
  • 测试无痕模式:使用浏览器的无痕/隐私模式打开登录页面尝试登录,排除浏览器插件或本地缓存的干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:26:07