API с проверкой паспортов и обработкой ошибок - PullRequest
0 голосов
/ 19 декабря 2018

У меня возникли проблемы с проверкой запросов, laravel Route api.php работает как Route web.php.

Мои API-маршруты:

Route::post('login', 'PassportController@login');
Route::post('register', 'PassportController@register');

Route::middleware('auth:api')->group(function () {
    //USERS
    Route::get('get-details', 'UserController@getDetails');
});

Я настроил все хорошие паспортаДокументация мне сказала, и работает нормально, но теперь я тестирую мой запрос, где не указан токен для проверки и обработки ошибок.

Мой маршрут:

 http://localhost:8000/api/get-details

Мой пользовательский контроллер:

 public function getDetails()
    {

        if(!Auth::check())
        {
            return response()->json(['error' => 'UnAuthorised'], 401);
        }
        //Get Auth User
        $user = Auth::user();

        //Return 404 if user not found
         if(is_null($user)){
             return response()->json(null,404);
         }
         return response()->json($user, 200);
    }

Чем с помощью Почтальона или другого инструмента я добавил свой маршрут без токена, чем в случае, если токен не включен, выдает мне сообщение об ошибке json.Но insted выдает мне эту ошибку:

InvalidArgumentException
Route [login] not defined.

И я замечаю, что проблема была в Midleware Authenticate.php:

 protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login');
        }
    }

Где «ExpectedJson» дает мне ложь.Как я могу решить проблему?Многие примеры, которые я вижу в Интернете, говорят о переопределении базы запросов или комментировании логина обратного маршрута, но это не решение для меня, так как в моем случае у меня есть в том же приложении маршруты API, по которым мое мобильное приложение связывается с ним, и тогда у меня не получитсявеб-сервер для управления информацией.

Может кто-нибудь посоветовать мне, как решить проблему?

...