現在、ユーザーがログインしているかどうかに関係なく、自分のページにフォームがあります。ユーザーがログインすると、これらのフォーム (CSRF を使用) のいずれかが表示されます。
問題は、認証後にこのボックスが表示されると、CSRF トークンが無効になることです。認証チェックと$form->isValid()
返品なしでフォームを送信できるようにすることでこれを確認しましたがtrue
、ログイン後にfalse
次のエラーが表示されます。
CSRF トークンが無効です。フォームの再送信をお試しください。
認証時に Symfony が CSRF トークンを再生成/無効化するのを止める、これらのフォームから CSRF トークンを削除する、または認証後にフォームを生成する (ただし、これは避けたい) の 3 つの解決策があると思います。私の現在の解決策は、認証を使用して新しい CSRF トークンを返し、フォーム トークンinput
値を設定することです。
追加:現在割り当てられているすべての CSRF トークンを表示する方法を知っている人はいますか? セッションはそれらを保持していないようです。