flask - Flask 表单不会为无效令牌引发 CSRFError
问题描述
Flask-WTF 文档状态:
当 CSRF 验证失败时,它将引发 CSRFError。
但我没有得到例外。
我将 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
.
我究竟做错了什么?
解决方案
在 flask-wtf 存储库中搜索 CSRFError,如果你确实使用它,它似乎是唯一一次实际引发的
from flask_wtf.csrf import CSRFProtect
csrf = CSRFProtect(app)
你提到的模式。它仅由函数调用的_error_response
csrf.py引发protect
。相反,例如,当令牌无效时validate_csrf
引发。ValidationError
推荐阅读
- php - 断点在 PhpStorm+Xdebug 中无法正常工作
- excel - 使用 IE 将 pdf 文件导入 excel 时出错
- flutter - 未找到颤振 io.flutter.facade
- javascript - jqGrid 动态填充选择列表
- python - Pycharm 不显示图像(matplotlib)
- material-ui - 不知道 'checked: {}' 的渲染逻辑,但它确实有效,如果删除它,颜色会变浅
- reactjs - 使用 Auth0 渲染反应路由器模式
- r - 使用 data.table 进行精确匹配和“最近”匹配的表连接
- netsuite - SuiteScript:如何删除 nlapiSearchRecord 的结果?
- oracle - WRT_8044 没有为此目标 Informatica 10.2.0 加载数据