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.py由 protect
调用功能。相比之下,例如 validate_csrf
加注 ValidationError
当 token 无效时。
关于Flask 表单不会为无效 token 引发 CSRFError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440172/