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