django:CSRF 验证失败。请求被中止。 (教程2)

问题描述 投票:0回答:1

从 Django 管理页面登录时出现错误。

我正在研究tutorial02,我尝试了各种方法并找到了相关文档,所以没有变化。

请理解,图片未上传,所以将以短信形式上传

====================================================== ==============================

[cmd window]
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

====================================================== ==============================

[web browser]

Forbidden (403)

CSRF verification failed. Request aborted.

You are seeing this message because this site requires a CSRF cookie when submitting forms. This cookie is required for security reasons, to ensure that your browser is not being hijacked by third parties.

如果您已将浏览器配置为禁用 cookie,请重新启用它们,至少对于本网站或“同源”请求。

帮助

失败原因: CSRF cookie 未设置。

一般来说,当存在真正的跨站请求伪造,或者没有正确使用 Django 的 CSRF 机制时,就会发生这种情况。对于 POST 表单,您需要确保: •您的浏览器正在接受cookie。 •视图函数将请求传递给模板的渲染方法。 •在模板中,每个POST 表单内都有一个针对内部URL 的{% csrf_token%} 模板标记。 •如果您不使用CsrfViewMiddleware,则必须在使用csrf_tokentemplate 标记的任何视图以及接受POST 数据的视图上使用csrf_protect。 •该表单具有有效的CSRF 令牌。登录另一个浏览器选项卡或登录后点击后退按钮后,您可能需要使用表单重新加载页面,因为登录后令牌会轮换。

您看到此页面的帮助部分是因为您的 Django 设置文件中有 DEBUG =True。将其更改为 False,则仅显示初始错误消息。

您可以使用 CSRF_FAILURE_VIEW 设置自定义此页面。

希望管理员登录成功。

django csrf verification
1个回答
0
投票

您可能需要使用 GET 请求而不是 POST 请求来访问管理面板。

© www.soinside.com 2019 - 2024. All rights reserved.