Flask 表单不会为无效 token 引发 CSRFError

标签 flask csrf flask-wtforms

Flask-WTF docs状态:

When CSRF validation fails, it will raise a CSRFError.



但我没有得到异常(exception)。

我将 Flask-WTF 用于我的表单,如下所示:
class MyForm(FlaskForm):
    ...

在我的处理程序中,我这样做:
my_form = MyForm()
if my_form.validate_on_submit():
    ...

我希望在 validate_on_submit 内部引发异常而是 validate_on_submit只是返回 False。

请注意,我没有这样做:
from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)

因为我的理解是,如果您的表单依赖于 FlaskForm,则不需要这样做。 .

我究竟做错了什么?

最佳答案

Searching through the flask-wtf repo for CSRFError ,如果你确实使用它,它似乎是唯一一次真正被提出来

from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)

你提到的模式。仅由 _error_response 提出在 csrf.pyprotect 调用功能。相比之下,例如 validate_csrf加注 ValidationError当 token 无效时。

关于Flask 表单不会为无效 token 引发 CSRFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440172/

相关文章:

javascript - AngularJS:PUT 使用 URL 发送数据而不是 JSON 数据

javascript - Highcharts:如何将字典中的数据添加到系列中

scala - 如何在 Play 2.6 上禁用 CSRF 过滤器?

security - 使用CORS时防止CSRF?

python - WTForms 创建自定义小部件

python-2.7 - 如何在quick_form flask Bootstrap 中将类添加到标签

python - Flask __init__.py 不显示更改

ruby-on-rails - CSRF token 与 session 中的 token 不匹配(Rails 4.1)

python - 如何使用flask-wtf上传多个文件?

python - Flask_login 中的 current_user 返回 NoneType