如何处理 laravel 5 中的令牌不匹配异常

How to handle TokenMismatch exception in laravel 5

目前我正在从事 laravel 项目

看到页面上的这个错误我很生气。

即使我已经注意了这一点,我的用户也看不到这个异常。

但预防胜于治疗!

那么在laravel.

中有什么方法可以处理这个异常吗?

要处理此异常,请转至 your_laravel_folder/vendor/compiled。php 并找到这个 ::

public function handle($request, Closure $next)
{
   if ($this->isReading($request) || $this->tokensMatch($request)) {
       return $this->addCookieToResponse($request, $next($request));
   }
        throw new TokenMismatchException();
}

并评论抛出 new TokenMismatchException();做你想做的就是例子

public function handle($request, Closure $next)
{
   if ($this->isReading($request) || $this->tokensMatch($request)) {
      return $this->addCookieToResponse($request, $next($request));
   }
    abort(404);
    //throw new TokenMismatchException();
}

在你的 Exception\Handler class 的 render() 方法中通过

捕获这个异常
if ($e instanceof \Illuminate\Session\TokenMismatchException) {
   // Your code
}

并呈现您的错误页面或执行此异常的任何其他操作。

如果您不需要 CSRF 保护,您可以在

中禁用中间件

app/Http/Kernel.php

如果稍后将应用程序环境设置为生产环境,用户将不会看到错误消息。