【发布时间】:2017-03-24 13:29:48
【问题描述】:
我想处理VerifyCsrfToken.php第67行中的TokenMismatchException:异常,然后将用户重定向到登录页面。
当用户登录并清除浏览器数据(会话、历史记录等)或用户的会话过期时会发生错误。
我已经在Handler.php中尝试过以下解决方案:
if ($e instanceof TokenMismatchException) {
return redirect()->route('welcome');
}
完整的 Haler.php 代码:
class Handler extends ExceptionHandler {
protected $dontReport = [
AuthorizationException::class,
HttpException::class,
ModelNotFoundException::class,
ValidationException::class,
];
public function report(Exception $e)
{
parent::report($e);
}
public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException) {
return redirect()->route('welcome');
}
return parent::render($request, $e);
}
}
我也尝试过返回状态码,然后尝试处理它,但是当我通过$e->getStatusCode() 返回状态码时,它没有返回任何值。因此我不知道如何处理这个异常。
任何合理的建议将不胜感激。
【问题讨论】:
标签: laravel laravel-5.2