Я сейчас занимаюсь разработкой приложения Laravel.Внутри приложения мне нужно создать публичный API, который должен быть доступен, если клиент получил токен доступа.
Поэтому я использую паспорт / паспорт.
Получение access_token работает нормально.Важной частью является аутентификация с помощью этого токена доступа и получение данных JSON в ответ на защищенный маршрут.
Настройка следующая:
- Laravel 5.7.6
- Laravel Passport 6.0.7
С Laravel 5.6.30и в Passport 6.0.7 сериализация cookie отключена.
/ app / Providers / AuthServiceProvider.php
$this->registerPolicies();
Passport::withoutCookieSerialization(); // because of the Laravel Update
Passport::routes();
Passport::tokensExpireIn(Carbon::now()->addDays(20));
Passport::refreshTokensExpireIn(Carbon::now()->addDays(20));
Как уже упоминалось в здесь я изменил время истечения токенов, чтобы они надевалине переполняйте или не начинайте с - .
более здесь @adamj, упомянутых для просмотра mapApiRoutes ()
/ app / Providers / RouteServiceProviders.php
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('auth:api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
Запрос, который я отправляю на мой API, получил следующий набор заголовков:
Accept: application/json
Authorization: Bearer {my_access_token}
Маршрут, к которому я пытаюсь получить доступ в Почтальоне, следующий:
Route::group(['middleware' => ['auth:api']], function () {
Route::get('/hello/world', function () {
return 'Hello World';
});
});
В таком случае Ответ всегда имеет статус HTTP 401. Может кто-нибудь помочь?
Я действительно больше не представляю, как это исправить.
Спасибо с уважением!