未定义 guard [api] 的授权驱动程序 [passport]
Auth driver [passport] for guard [api] is not defined
我正在使用 Laravel 5.7 和 oauth2 通行证。当我尝试通过邮递员访问 /api/user 路由时出现此错误。
可能是你没有设置好你的守卫
请先将您的保护驱动程序设置检查到 config/auth.php
。
Passport 包含一个 authentication guard,它将验证传入请求的访问令牌。一旦你配置 api 守卫使用通行证 driver,你只需要在任何需要有效访问令牌的路由上指定 auth:api 中间件:
Route::get('/user', function () {
//
})->middleware('auth:api');
当调用受 Passport 保护的路由时,您的应用程序的 API 消费者应在其请求的 Authorization
header 中将其访问令牌指定为 Bearer
令牌.例如,当使用 Guzzle HTTP 库时:
$response = $client->request('GET', '/api/user', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
我发现了问题。实际上我使用的是 Swoole 服务器而不是 php-fpm。我必须将 Passport class 添加到 swoole 配置文件中的提供数组 swoole_http.php .
我运行进入了类似的情况,你需要配置你的driver到你的passport里面config/auth.php 文件。
对于我的情况,我发现了一个虚拟命令 "passportphp artisan passport:keys instead of "passport""
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
接下来仔细检查您的 headers 并确保设置
授权:"Bearer + token"和接受到Application/json
如果您在 config/auth 中将“passport”大写,也会出现此问题。php :
正确:
'api' => [
'driver' => 'passport',
错误:
'api' => [
'driver' => 'Passport',
注意护照首字母不能大写!
我正在使用 Laravel 5.7 和 oauth2 通行证。当我尝试通过邮递员访问 /api/user 路由时出现此错误。
可能是你没有设置好你的守卫
请先将您的保护驱动程序设置检查到 config/auth.php
。
Passport 包含一个 authentication guard,它将验证传入请求的访问令牌。一旦你配置 api 守卫使用通行证 driver,你只需要在任何需要有效访问令牌的路由上指定 auth:api 中间件:
Route::get('/user', function () {
//
})->middleware('auth:api');
当调用受 Passport 保护的路由时,您的应用程序的 API 消费者应在其请求的 Authorization
header 中将其访问令牌指定为 Bearer
令牌.例如,当使用 Guzzle HTTP 库时:
$response = $client->request('GET', '/api/user', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer '.$accessToken,
],
]);
我发现了问题。实际上我使用的是 Swoole 服务器而不是 php-fpm。我必须将 Passport class 添加到 swoole 配置文件中的提供数组 swoole_http.php .
我运行进入了类似的情况,你需要配置你的driver到你的passport里面config/auth.php 文件。 对于我的情况,我发现了一个虚拟命令 "passportphp artisan passport:keys instead of "passport""
'api' => [
'driver' => 'passport',
'provider' => 'users',
'hash' => false,
],
接下来仔细检查您的 headers 并确保设置
授权:"Bearer + token"和接受到Application/json
如果您在 config/auth 中将“passport”大写,也会出现此问题。php :
正确:
'api' => [
'driver' => 'passport',
错误:
'api' => [
'driver' => 'Passport',
注意护照首字母不能大写!