Handle TokenMismatchException in laravel 5

后端 未结 2 1528
夕颜
夕颜 2020-12-04 23:18

I need to handle TokenMismatchException in laravel 5 such a way that if token does not match it will show some message to user instead of TokenMismatchExc

相关标签:
2条回答
  • 2020-12-04 23:52

    You will need to write a function to render the TokenMismatchException error. You will add that function to your App\Exceptions\Handler class (in the /app/Exceptions/Handler.php file) this way:

    // make sure you reference the full path of the class:
    use Illuminate\Session\TokenMismatchException;
    
    class Handler extends ExceptionHandler {
    
        protected $dontReport = [
            HttpException::class,
            ModelNotFoundException::class,
            // opt from logging this error to your log files (optional)
            TokenMismatchException::class,
        ];
    
        public function render($request, Exception $e)
        {
            // Handle the exception...
            // redirect back with form input except the _token (forcing a new token to be generated)
            if ($e instanceof TokenMismatchException){
                return redirect()->back()->withInput($request->except('_token'))
                ->withFlashDanger('You page session expired. Please try again');
            }
    
    0 讨论(0)
  • 2020-12-04 23:58

    You can create a custom exception render in the App\Exceptions\Handler class (in the /app/Exceptions/Handler.php file).

    For example, to render a different view when for the TokenMismatchException error, you can change the render method to something like this:

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $e
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {
        if ($e instanceof \Illuminate\Session\TokenMismatchException) {
            return response()->view('errors.custom', [], 500);
        }
        return parent::render($request, $e);
    }
    
    0 讨论(0)
提交回复
热议问题