【Laravel】CSRFトークンを付けているのに、status419エラー

Laravelでajax通信をする時、セキュリティの観点からCSRFトークンを付けていないとエラーになります。しかし、CSRFトークンを設定しているのに、status419エラーが出た時の話。

現象

通常時は正常に稼働しているんですが、以下のような場合に、status419エラーが出た。

・定期的にAjax通信をするページで、そのページを開きっぱなしにしていた時。
・ページを開いた時に、前回のajax通信が残っている時。
(ブラウザの設定で、立ち上げ時に前回開いていたページを開く設定にしている場合など)

いずれも、以下のようなエラーが出て通信が正常に行われなかった。

Failed to load resource: the server responded with a status of 419 (unknown status)

原因

当然といえば当然ですが、トークンの有効期限が過ぎたのが原因だと思われる。

Laravelのトークンのデフォルトの有効期限は120分。

対策

対策というほどの事ではないですが、419エラーを受け取ったらページをリロードするようにしました。

あと、メタタグを忘れずに。