Шаги для воспроизведения:< /p>
- Я переместил предопределенные маршруты приложения в отдельный файл api.php в соответствии с документацией Laravel.
- Я установил для защиты в файле config/passport.php значение «api».
Код: Выделить всё
TypeError: Laravel\Passport\Http\Controllers\AuthorizationController::__construct(): Argument #2 ($guard) must be of type Illuminate\Contracts\Auth\StatefulGuard, Laravel\Passport\Guards\TokenGuard given in file C:\PHP\rest-api-backend\vendor\laravel\passport\src\Http\Controllers\AuthorizationController.php on line 52
- Я проверил, что защита API правильно определена в config/auth.php.
- Я просмотрел документацию Laravel Passport на наличие дополнительных настроек, необходимых для защиты API.
- Я искал похожие проблемы в Stack Overflow, но не нашел решения.
- Может быть несоответствие между ожидаемым типом защиты от AuthorizationController и предоставленным TokenGuard.
- Там это может быть проблема с конфигурацией, требующая дополнительных действий для включения защиты API с помощью Laravel Passport.
- < li>Понимание того, почему AuthorizationController ожидает StatefulGuard вместо предоставленного TokenGuard.
- Найти способ устранить несоответствие типов и заставить API работать с Laravel Паспорт.
- Соответствующие фрагменты кода:
(конфигурация защиты)Код: Выделить всё
config/passport.php - (определение защиты API)
Код: Выделить всё
config/auth.php - (соответствующие определения маршрутов)
Код: Выделить всё
api.php
Подробнее здесь: https://stackoverflow.com/questions/791 ... minate-con