Паспорт Laravel Как отобразить пользовательское сообщение об ошибке при предоставлении недопустимого токена

#laravel #laravel-passport #laravel-api

Вопрос:

На самом деле я пытаюсь создать api с помощью Laravel passport, и мне нужно защитить некоторые маршруты, чтобы только аутентифицированный пользователь мог получить доступ к этим маршрутам.

 Route::post('register', [ApiAuthController::class, 'register']);
Route::post('login', [ApiAuthController::class, 'login']);
Route::middleware('auth:api')->group(function () {
    Route::post('/task', [ApiControllerTaskController::class,'store']);
});
 

Теперь вот после входа в систему я получил токен доступа и использовал этот токен доступа вот так.
введите описание изображения здесь

здесь все работает нормально, но когда я удаляю токен на предъявителя, я хочу показать сообщение об ошибке недопустимого токена, но я получил это. введите описание изображения здесь

Ответ №1:

Убедитесь, что вы добавили Content-type : application/json в заголовки в Postman перед отправкой запроса

Ответ №2:

Это сработало для меня, если ваша версия laravel >= 8.* добавьте этот код в свой Handler.php ведьма, расположенная в App/Exceptions/Handler.php

 public function render($request, Throwable $e)
{
    if ($e instanceof AuthenticationException) {
        return response()->json($e->getMessage());
    }
    return parent::render($request, $e);
}
 

Если вам нужна дополнительная помощь, оставьте мне комментарий. Я надеюсь, что смогу помочь:)

Комментарии:

1. Спасибо! Это сработало и для меня тоже