Flask-WTF CSRFProtect 给出“400 CSRF 令牌丢失”错误

Jen*_*y B 6 python flask flask-wtforms

我正在尝试使用 Flask-WTF 的扩展添加 CSRF 令牌保护CSRFProtect。除了此 CSRF 保护之外,该应用程序不使用 WTForms。

我遵循了文档,但收到“400 Bad Request The CSRF token is Missing”。

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
Run Code Online (Sandbox Code Playgroud)

我将以下内容放入模板中(带表单或不带表单),但出现相同的错误。

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
Run Code Online (Sandbox Code Playgroud)

tur*_*ula 7

如本答案所述,检查实际的 CSFR 验证流程:

flask_wtf/csrf.py您可以在文件中、函数中调试验证 validate_csrf()

对我来说,这个问题是由FlaskFlask-WTF最近的更新引起的。我通过删除.pyc项目中的所有文件解决了这个问题。但是,我不知道我的情况的实际根本原因。

find . -name '*.pyc' -delete
Run Code Online (Sandbox Code Playgroud)

 

稍后编辑:

  • 更新到 Flask、Flask-WTF 的最新版本;
  • 在您的开发环境中,如果使用 HTTP 而不是 HTTPS,请确保SESSION_COOKIE_SECURE未设置为True. 看到这个