An empty bottle

しがないメンヘラエンジニアの日記。

CSRF Exception キャッチしろやあ @Laravel5

お疲れ様です。

フォームを開いたまま仕事に行き、数時間放置した後に再度Submit.

すると

TokenMismatchException in VerifyCsrfToken.php

なるエラーが。
そういう時は自分でExceptionをThrowする。

対象はこちら↓

app/Exceptions/Handler.php

1.CatchするためのExceptionを読み込もうね!!

use Illuminate\Session\TokenMismatchException;

2.function render をいじろうね!!

    public function render($request, Exception $e)
    {
        
        // csrf error 
        if ($e instanceof TokenMismatchException) {
            return redirect()->back()->with(
                'csrf_error' ,
                'ページを長時間開いていた為、<br />セッションが切れました。<br />もう一度最初から入力してください。'
            );
        }
        
        return parent::render($request, $e);
    }