私のページには現在、ユーザーがログインしているかどうかにかかわらずフォームがあります。ユーザーがログインすると、これらのフォーム(CSRFを使用する)のいずれかが提示されます。認証時にCSRFの再生/無効化を停止する
認証後にこのボックスが表示されると、CSRFトークンが無効になるという問題があります。
CSRFトークンが無効である:私は、ログインした後、それはのエラーで私に
false
を与えるのに対し、自身が認証チェックと$form->isValid()
戻りtrue
せずにフォームを送信できるようにすることで、これを確認しています。フォームを再送信してください。
私は3つの解決策があると思います - (私はむしろしかし、これを避けるためと思います)、認証にCSRFトークンを無効/再生からsymfonyのを止めるこれらのフォームからCSRFトークンを削除するか、認証後に私のフォームを生成します。私の現在の解決策は、新しいCSRFトークンを認証およびフォームトークンinput
の値とともに戻すことです。
追加:現在割り当てられているすべてのCSRFトークンの表示方法を知っている人はいますか?セッションはそれらを保持していないようです。
ログイン後にページがリロードされませんか? – lsouza
@ヒサムいいえ、ログインはajaxを使って行われるので、ユーザーはログインしてログインが成功したらフォームを開きます。これは、トークンが無効になる(一見)点です。私はすべてのトークンを表示する場所を知っていれば、これをさらにデバッグすることができます。 – Prisoner
おそらく他のトークンを再生成できますか?参照してください:http://stackoverflow.com/a/11632713/209585 – lsouza