Форма фляги не вызывает CSRFError для недействительного токена - PullRequest
1 голос
/ 17 октября 2019

Состояние Flask-WTF :

При сбое проверки CSRF возникает ошибка CSRFEr.

но я не получаю исключение.

Я использую Flask-WTF для своих форм, например:

class MyForm(FlaskForm):
    ...

В моем обработчике Iсделать это:

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.

Что я делаю не так?

1 Ответ

1 голос
/ 18 октября 2019

При поиске в CSRFError в репозитории flask-wtf кажется, что единственный раз, когда он действительно активируется, если вы используете тот шаблон

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

, который вы упомянули. Он увеличивается только на _error_response в csrf.py , который вызывается функцией protect. Напротив, например, validate_csrf повышает ValidationError, когда токен недействителен.

...