You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Passport配置api守卫时触发TypeError类型不匹配错误求助

Laravel Passport配置api守卫时触发TypeError类型不匹配错误求助

我在使用Laravel 10.48.22搭配Laravel Passport 12.3.0时遇到了一个类型错误,实在找不到解决办法,来求助大家!

复现步骤

  • 按照Laravel官方文档的指引,把预设的应用路由迁移到了单独的api.php文件中
  • 在config/passport.php配置文件里,将guard选项设置为了'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   

我已经尝试的排查操作

  • 仔细检查了config/auth.php文件,确认api守卫的定义完全正确
  • 反复查阅Laravel Passport的官方文档,想找到针对api守卫的额外配置要求,但没发现遗漏
  • 在Stack Overflow上搜了一圈类似的问题,可惜都没找到能解决我这个情况的方案

可能的原因推测

  • AuthorizationController类期望接收的是StatefulGuard类型的守卫,但实际传入的是TokenGuard,类型不匹配导致报错
  • 可能我的配置流程有缺失,需要完成某些额外步骤才能让Laravel Passport和api守卫正常配合

我需要大家帮忙的地方

  1. 想弄明白为什么AuthorizationController会要求StatefulGuard,而不是我配置的TokenGuard?
  2. 有没有办法解决这个类型不匹配的问题,让api守卫能和Laravel Passport正常工作?

补充信息

  • 涉及到的相关代码片段包括:
    • config/passport.php中的守卫配置
    • config/auth.php中的API守卫定义
    • api.php里的相关路由定义
  • 我已经注释掉了api.php文件中预设的Laravel Passport路由

备注:内容来源于stack exchange,提问作者alireza.haraji.dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 08:58:04