Как обработать исключение OAuth в Laravel Passport? - PullRequest
0 голосов
/ 25 июня 2019

Я работаю над пакетом паспортов Laravel.Когда я отзываю токен и получаю доступ к аутентифицированной конечной точке, он выдает исключение.

Файл журналов содержит «Владелец ресурса или сервер авторизации отклонил запрос».Для обработки исключения я создал промежуточное программное обеспечение OAuth и поместил в него код исключения, как упомянуто в этой ссылке: https://www.kingpabel.com/oauth2-exception-custom-error-message/

public function handle($request, Closure $next)
    {
        //return $next($request);
         try {
            $response = $next($request);
            // Was an exception thrown? If so and available catch in our middleware
            if (isset($response->exception) && $response->exception) {
                throw $response->exception;
            }
            return $response;
        } catch (OAuthException $e) {
            $data = [
//                'error' => $e->errorType,
//                'error_description' => $e->getMessage(),
                'error' => 'Custom Error',
                'error_description' => 'Custom Description',
            ];
            return \Response::json($data, $e->httpStatusCode, $e->getHttpHeaders());
        }
    }

Я хочу вернуть ошибку в формате json, например:

{
    "error": "Token is invalid!"
}

Буду признателен, если кто-нибудь поможет мне в этом.Спасибо,

1 Ответ

0 голосов
/ 25 июня 2019

Хороший способ отловить определенные исключения - это добавить свою собственную логику в метод render файла App\Exceptions\Handler.

Например, вы можете использовать:

if ( $exception instanceof OAuthException ) {
     return response(['error' => 'Token is invalid!'], 403);
}
...