Laravel Passport не аутентифицируется с помощью cookie-файла JWT (самопотребляющий API) - PullRequest
0 голосов
/ 01 января 2019

Я прошел всю страницу документации и, насколько я могу судить, у меня все настроено именно так, как указано в документации.Однако, когда я пытаюсь сделать GET-запрос на /api/users, он всегда возвращает 401 Unauthorized.

. Если я проверяю запрос, я вижу, что laravel_token действительно выполняетсяпрошел вместе с запросом, а также CSRF.

На данный момент, я не совсем уверен, почему он всегда не может пройти проверку подлинности, но это довольно неприятно, и я уверен, что это что-то незначительное, что яс видом как-то.

Я использую Laravel 5.7.5.

Выполнены шаги настройки:

  • Ран php artisan passport:install
  • Добавлена ​​черта для модели пользователя
  • Добавлено Passport::routes() в AuthServiceProvider::boot()
  • Изменен драйвер API для паспорта в config/auth.php
  • Добавлено CreateFreshApiToken::class в веб-связующее ПО

1 Ответ

0 голосов
/ 01 января 2019

После долгих раскопок я наконец понял, в чём моя проблема.

В версии 5.6 и более поздних версий Laravel файлы cookie больше не сериализуются / не сериализуются.Тем не менее, Passport по-прежнему ожидает, что файлы cookie сериализуются.Ни в документации по Laravel, ни в Passport это не указывается, и, надеюсь, они получат больше синхронизации, так что это не проблема.

Чтобы это исправить, вам просто нужно добавить Passport::withoutCookieSerialization(); к app\Providers\AuthServiceProvider::boot()

...