Проверка подлинности паспорта не работает в laravel 5.3

Я настроил Laravel, используя паспорт согласно документации здесь:

https://laravel.com/docs/5.3/passport.

Я написал один маршрут в API-маршруте и отправить запрос http://localhost/laravel_project/public/api/user используя почтальон, но он показывает мне ошибку ниже:

NotFoundHttpException в строке 161 RouteCollection.php:

У меня есть следующий маршрут (в маршрутах / api.php):

Route::get('/user', function (Request $request) {
return array(
1 => "John",
2 => "Mary",
3 => "Steven");
})->middleware('auth:api');

но когда я удалил ->middleware('auth:api') линия на маршруте у меня нормально работает.

Как я могу это исправить?

Также, пожалуйста, скажите мне, если я не хочу добавлять паспортную аутентификацию в некоторые маршруты, как я могу это сделать?

2

Решение

У меня возникла та же проблема, кажется, вы должны указать заголовок Accept для application/json как показано Мэттом Штауффером Вот

Некоторые дальнейшие заметки:

  1. Ваш заголовок Accept по умолчанию установлен на text / html, поэтому Laravel попытается перенаправить вас на URL /login но, вероятно, вы не сделали PHP ремесленник make:auth поэтому он не найдет маршрут входа в систему.
  2. Когда вы удаляете промежуточное ПО, оно будет работать, потому что вы больше не аутентифицируете свой запрос
  3. Чтобы аутентифицировать некоторые маршруты, просто сгруппируйте их, используя Route::group а также auth:api в качестве промежуточного программного обеспечения
2

Другие решения

В вашем routes/api.php вы можете сделать это:

Route::group(['middleware' => 'auth:api'], function(){

Route::get('/user', function (Request $request) {
return array(
1 => "John",
2 => "Mary",
3 => "Steven");
});

});

Все маршруты, которые вы определяете внутри этой группы, будут иметь auth:api промежуточное ПО, поэтому для доступа к нему потребуется паспортная аутентификация.

За пределами этой группы вы можете разместить свои API-маршруты, которые не требуют аутентификации.

РЕДАКТИРОВАТЬ: Чтобы убедиться, что маршрут действительно существует с необходимым промежуточным программным обеспечением, запустите php artisan route:list,

1

По вопросам рекламы [email protected]