Как вернуть JSON в Laravel AuthServiceProvider? - PullRequest
1 голос
/ 15 апреля 2020

Я проверяю токен в методе boot() и ловлю неверные токены. Как я могу вернуть какой-нибудь ответ в случае неверного токена?

Вот мой код:

public function boot(Authenticator $authenticator)
{
        Auth::viaRequest('auth-token', function ($request) use ($authenticator) {
            $bearerToken = $request->bearerToken();

            if ($bearerToken) {
                try {
                    return $authenticator->getUser($bearerToken);
                } catch (InvalidTokenException $exeception) {
                    return response()->json(['token_invalid'], 400);
                }
            }
        });
}

И он выводит мне сообщение об ошибке:

Метод Подсветка \ Http \ JsonResponse :: getAuthIdentifier не существует.

1 Ответ

0 голосов
/ 15 апреля 2020

Из документов :

Второй аргумент, передаваемый методу, должен быть Closure, который получает входящий HTTP-запрос и возвращает пользовательский экземпляр или, если аутентификация не удалась, null

Поэтому вместо возврата объекта ответа верните null:

if ($bearerToken) {
    try {
        return $authenticator->getUser($bearerToken);
    } catch (InvalidTokenException $exeception) {
        return null;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...