Laravel 7.5.2 (Api паспорта) + Ajax Ошибка: неопределенный индекс: aud, \ vendor \ laravel \ паспорт \ src \ Guards \ TokenGuard. php - PullRequest
3 голосов
/ 06 мая 2020

Я использую Laravel 7.5.2 с Vuejs. Я использую паспорт для аутентификации api. Я выполнил инструкции по установке паспорта на веб-сайте laravel.

  • Выполнено composer требуется laravel / паспорт, php миграция мастера и php паспорт мастера: установить
  • Добавил HasApiTokens в модель пользователя
  • Добавил Passport :: routes () в AuthServiceProvider
  • Добавил \ Laravel \ Passport \ Http \ Middleware \ CreateFreshApiToken :: class в App \ Http \ Kernel web middlewareGroups
  • Изменил драйвер Api на паспорт в config / auth. php

Cook ie с именем «laravel_token» генерируется и отправляется с запросом ajax как Я вижу в инструменте разработчика.

В моем контроллере я включил промежуточное ПО api как

public function __construct(){
    $this->middleware('auth:api');
}

Api / Ajax Response

{
"message": "Undefined index: aud",
"exception": "ErrorException",
"file": "E:\\laravel\\vendor\\laravel\\passport\\src\\Guards\\TokenGuard.php",
"line": 140,
"trace": [
    {
...
}
]

Я также пробовал : composer дамп-автозагрузка

Моя настройка

  • Laravel: 7.5.2
  • Паспорт: 9.0
  • PHP: 7.4.0
  • Vuejs: 2.5.17

Проблема касается не только vuejs. Это связано с ajax запросами из простого javascript или может быть из любого фреймворка.

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Возникла проблема в laravel / паспорте версии 9.0. Обновление до версии 9.0.1 устранило проблему.

composer update laravel/passport:9.0.1

Подробности проблемы можно найти здесь: Подробная информация о проблеме на Github

Спасибо тем, кто исправил вопрос.

0 голосов
/ 06 мая 2020

Вы запускали php artisan passport:install?

Это необходимо для установки ключей в директорию вашего хранилища.

...