Используя дважды представленные токены CSRF (заголовок + cookie) в формах HTML?

Я использую комбинацию flask-jwt-extended для аутентификации JWT, и я включил защиту CSRF, то есть для определенных методов HTTP (PUT, POST, DELETE...), требуется, чтобы значение в cookie и заголовок HTTP совпадали.

Это прекрасно работает для моих запросов API, где я просто создаю HTTP-запрос в JS с правильно заданным заголовком, но я хочу использовать Flask-Admin и разрешить доступ на основе токенов JWT. Я сделал это, украсив is_accessible функция в Flask-Admin ModelView с @jwt_optional и проверка в нем.

Однако теперь, когда я пытаюсь выполнить какие-либо изменения через Flask-Admin, я получаю сообщение об ошибке от flask-jwt-extended, заявив, что я не правильно включил свои токены CSRF. Это правда, так как я использую формы по умолчанию, которые идут с Flask-Admin.

Мой вопрос, что является лучшим решением? Можно ли отключить защиту CSRF только для определенных путей? (И включить для них защиту CSRF от Flask-Admin?) Должен ли я изменить представления и вставить JS, который запускается кнопкой отправки, но на самом деле отправляет запрос XmlHTTPRequest? Должен ли я реализовать аутентификацию JWT для представлений Flask-Admin другим способом?

0 ответов

Другие вопросы по тегам