前提・実現したいこと
Laravel 5.4.36を使用してサイトを構築しています。
フォームでデータをPOSTする際に、TokenMismatchExceptionが頻発し、以下のような症状で困っております。
-フォーム画面(register.blade.php)で{{ csrf_field() }}を設定しています。
-常に発生するわけではなく、2~3回に1回発生します。
-主にブラウザの「戻る」ボタンや、javascript:history.back() で戻り、もう一度送信すると発生しますが、日を起きその日はじめての送信でも発生する場合が多々あります。
-エラーが発生し、ブラウザの「戻る」ボタンで戻り、Chromeの「キャッシュの消去とハードの再読み込み」でキャッシュをクリアし再送信すると発生しづらいような気がします。(発生がランダムなので確実な検証はできませんでした。)
-5.4.21で別のサイトも運用していますが、同じように頻発します。
MiddlewareのVerifyCsrfToken.php上で、頻発すると困るURLを除外してなんとか対応しておりますが、同じような状況に陥った方、また解決策がお分かりになる方がいらっしゃいましたら是非教えてください。
発生している問題・エラーメッセージ
(1/1) TokenMismatchException ------------------------------------ in VerifyCsrfToken.php (line 68) ------------------------------------ at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php (line 148)
該当のソースコード
PHP
1 2[register.blade.php] 3 4<form class="default" action="/register/confirm" method="post"> 5 6-中略- 7 8{{ csrf_field() }} 9<div class="application tac"> 10 <button type="submit">確認画面へ</button> 11</div> 12 13</form>
試したこと
時間をおいてPOSTしたり、キャッシュを削除してみたりしましたがやはり特定の解決策は思い当たらず、エラー発生しなくなるまで何度もPOSTしている現状です。
また、5.4.21で実際に稼働しているサイトは、利用者からもTokenMismatchExceptionが出ると報告がありました。
補足情報(FW/ツールのバージョンなど)
XAMPP Version 5.6.24
Apache 2.4.23
MariaDB 10.1.16
PHP 5.6.24 (VC11 X86 32bit thread safe) + PEAR
phpMyAdmin 4.5.1
OS Windows 7
ブラウザ Chrome 64.0.3282.186
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/16 10:49