Laravel 未定义guard[api]的身份验证驱动程序[passport]

Laravel 未定义guard[api]的身份验证驱动程序[passport],laravel,laravel-passport,laravel-5.7,Laravel,Laravel Passport,Laravel 5.7,我正在使用Laravel 5.7和passport for oauth2。当我试图与邮递员一起访问/api/user路由时,我遇到了此错误。可能您没有设置您的防护 请先将您的guard驱动程序设置检查到config/auth.php。Passport包含一个用于验证传入请求的访问令牌的。将api guard配置为使用passport驱动程序后,只需在需要有效访问令牌的任何路由上指定auth:api中间件: Route::get('/user', function () { // })-&

我正在使用Laravel 5.7和passport for oauth2。当我试图与邮递员一起访问/api/user路由时,我遇到了此错误。

可能您没有设置您的防护

请先将您的guard驱动程序设置检查到
config/auth.php

Passport包含一个用于验证传入请求的访问令牌的。将api guard配置为使用passport驱动程序后,只需在需要有效访问令牌的任何路由上指定auth:api中间件:

Route::get('/user', function () {
    //
})->middleware('auth:api');
调用受Passport保护的路由时,应用程序的API使用者应在其请求的
授权
标头中将其访问令牌指定为
承载
令牌。例如,使用Guzzle HTTP库时:

$response = $client->request('GET', '/api/user', [
    'headers' => [
        'Accept' => 'application/json',
        'Authorization' => 'Bearer '.$accessToken,
    ],
]);

我发现了问题。实际上,我使用的是Swoole服务器,而不是php fpm。我必须将Passport类添加到swoole配置文件swoole_http.php中的提供数组中。

我遇到了类似的情况,您需要在config/auth.php文件中将驱动程序配置为Passport。 在我的例子中,我发现一个伪命令“passportphp artisan passport:keys”而不是“passport”

接下来仔细检查标题,确保设置了


授权:“承载者+令牌”和接受应用程序/json

如果在config/auth.php中将“passport”大写,也会出现此问题:

正确:

'api' => [
    'driver' => 'passport',
错:

'api' => [
    'driver' => 'Passport',

请注意,护照的第一个字母不应大写

你在用什么图书馆?您在laravel中使用了默认值还是使用了其他东西?是的,我只使用默认passport库。您运行了
composer require laravel/passport
对吗?是的,请求和获取访问令牌工作正常。但是,当尝试使用api gaurd访问资源时,我遇到了这个问题。
“guards”=>[“web”=>[“驱动程序”=>“会话”,“提供者”=>“用户”,],“api”=>[“驱动程序”=>“passport”,“提供者”=>“用户”,],],
这是我的auth.php文件中的代码。我已将passport驱动程序添加到api gaurd。
'api' => [
    'driver' => 'Passport',