Обработка исключений при использовании как web, так и токена api gaurd - PullRequest
0 голосов
/ 20 апреля 2019

Использование laravel5.8. Использование веб-интерфейса и API (Token Gaurd).
при использовании вызова API с недопустимым параметром api_token, получающего ошибку Route: Логин не определен. Я хочу ответ в JSON. Читайте в форуме мне нужно использовать следующий путь в app \ Exceptions \ Handler.php, и это работает. У меня есть веб-gaurd для некоторых путей. Я хочу, чтобы маршрут: вход в систему работал, когда это веб-gaurd, и возвращал ответ json при использовании api gaurd. Как я могу сделать это в Laravel 5.8?

  public function render($request, Exception $exception)
    {
      //  dd(get_class($exception));
       // return parent::render($request, $exception);
        return response()->json(
            [
                'errors' => [
                    'status' => 401,
                    'message' => 'Unauthenticated',
                ]
            ], 401
        );
    }

1 Ответ

1 голос
/ 21 апреля 2019

Я поставил логику в функцию unauthenticated, в сочетании с expectsJson() должен решить вашу проблему

// in app\Exceptions\Handler.php
public function render($request, Exception $exception)
{
    return parent::render($request, $exception);
}

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

    return redirect()->guest('/');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...