如何在Laravel 5.5中向处理程序添加未经身份验证的检查?

时间:2017-12-19 18:48:10

标签: php laravel-5

我修改了app / Exceptions / Handler.php以获得未经身份验证的功能。由于它纯粹是一个API,我只返回json。

protected function unauthenticated($request, AuthenticationException $exception)
{
    return response()->json(['error' => 'Unauthenticated'], 401);
}

添加后php artisan tinker给出了以下错误。

[ErrorException]
  Declaration of App\Exceptions\Handler::unauthenticated($request, App\Exceptions\AuthenticationException $exception) should be compatible with Illuminate\Foundation\Exceptions\Handler::unauthenticated($request, Illuminate\Auth\AuthenticationException $exception)

但我不确定需要改变什么以使其兼容。我idi在处理程序的顶部添加了一个use语句use Illuminate\Auth\AuthentificationException;

1 个答案:

答案 0 :(得分:1)

你应该使用Exception并请求

请确保包括这样的内容:

namespace App\Exceptions;

use Exception;
use Request;
use Illuminate\Auth\AuthenticationException;
use Response;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

你的方法应该是这样的:

protected function unauthenticated($request, AuthenticationException $exception)
{
    if ($request->expectsJson()) {
        return response()->json(['error' => 'Unauthenticated.'], 401);
    }

    return redirect()->guest('/');
}

你的代码只是响应为json