Laravel Passport+L5-Swagger授权时提示“Auth Error Error: Not Found”求助
解决darkaonline/l5-swagger授权时"Auth Error Error: Not Found"问题
针对Laravel 7.29 + darkaonline/l5-swagger v7.* + Passport环境下的授权404错误,可按以下步骤排查解决:
检查Swagger授权端点配置
打开config/l5-swagger.php,确认securityDefinitions中的Passport端点指向正确的路由:'passport' => [ 'type' => 'oauth2', 'authorizationUrl' => url('/oauth/authorize'), 'tokenUrl' => url('/oauth/token'), 'flow' => 'password', 'scopes' => [] ],若访问
/oauth/token或/oauth/authorize返回404,说明Passport未正确安装,重新执行:php artisan passport:install php artisan route:clear验证API路由与Swagger注解匹配
确保需授权的API路由使用auth:api中间件,且Swagger注解正确关联安全策略:/** * @OA\Get( * path="/api/user", * summary="获取当前用户信息", * @OA\Response(response=200, description="成功返回用户信息"), * @OA\Security( * security={"passport": {}} * ) * ) */ Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api');清除缓存并重新生成Swagger文档
执行命令清空缓存、重新生成文档:php artisan cache:clear php artisan config:clear php artisan l5-swagger:generate确认Passport核心配置完整性
- 检查
config/auth.php中API guard驱动设置为passport:'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ], - 确保User模型引入
HasApiTokenstrait:use Laravel\Passport\HasApiTokens; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens, Notifiable; // ... }
- 检查
检查服务器路由重写规则
确认Nginx/Apache的重写规则正确配置,Laravel的public目录为站点根目录,避免路由被拦截导致404。
内容的提问来源于stack exchange,提问作者Tanvir
相关产品推荐
相关产品推荐

