Шаги для воспроизведения:< /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 .
< ul>
[*]Понимание того, почему AuthorizationController ожидает StatefulGuard вместо предоставленного TokenGuard.
[*]Найти способ устранить несоответствие типов и заставить защиту API работать с Laravel Passport.
Дополнительная информация:
- Соответствующие фрагменты кода:< /p>
(конфигурация защиты)Код: Выделить всё
config/passport.php - (определение защиты API)
Код: Выделить всё
config/auth.php - (соответствующие определения маршрутов)
Код: Выделить всё
api.php
Спасибо за любую помощь или предложения, которые вы можете предоставить!
Подробнее здесь: https://stackoverflow.com/questions/791 ... minate-con