В настоящее время у меня есть формы на моей странице, которые существуют независимо от того, вошел ли пользователь в систему или нет. Как только пользователь входит в систему, ему предоставляется одна из этих форм (которые используют CSRF).
Проблема в том, что если это поле отображается после аутентификации, токены CSRF становятся недействительными. Я подтвердил это, позволив себе отправить форму без проверки подлинности, и $form->isValid()
возвращает true
, тогда как после входа в систему он дает мне false
с ошибкой:
Токен CSRF недействителен. Пожалуйста, попробуйте повторно отправить форму.
Я предполагаю, что есть три решения: запретить Symfony регенерировать/аннулировать токены CSRF при аутентификации, удалить токены CSRF из этих форм или сгенерировать мою форму после аутентификации (однако я бы предпочел этого избежать). Мое текущее решение состоит в том, чтобы передать новый токен CSRF обратно с аутентификацией и установить значение токена формы input
.
Дополнительно: кто-нибудь знает, как просмотреть все назначенные токены CSRF? Сессия, похоже, их не удерживает.