Laravelでユーザーがログインしている状態で放置され、セッションタイムアウト後にログアウトしようとすると、419エラーが出てしまいます。
この修正方法をぐぐってみたら、あちこちで、app\Exceptions\Hander.php を修正すればいいよと書かれています。
public function render($request, Throwable $exception) { if ($exception instanceof Illuminate\Session\TokenMismatchException) { return redirect()->route('login'); } return parent::render($request, $exception); }
確かに、このように書けばログイン画面にリダイレクトされます。
とりあえず期待通りに動いてるかもしれませんが、困らないですか?
TokenMismatchException が発生したとき、すべてがログイン画面にリダイレクトされてしまいます。
単純に @csrf を書き忘れたとしても、ログイン画面にリダイレクトされてしまいます。
この変更を知らない人にとっては、謎の挙動になります。
アクセスしたURLがログアウトのURLだった場合だけ、ログイン画面にリダイレクトするようにしておけば、謎の挙動に困ることがなくなると思います。
public function render($request, Throwable $e) { if ($e instanceof Illuminate\Session\TokenMismatchException) { if (url()->current() == route('logout')) { return redirect()->route('login'); } } return parent::render($request, $e); }