【问题标题】:Auth driver [passport] for guard [api] is not defined未定义保护 [api] 的身份验证驱动程序 [passport]
【发布时间】:2019-05-11 23:51:51
【问题描述】:

我正在为 oauth2 使用 Laravel 5.7 和护照。当我尝试使用邮递员访问 /api/user 路由时,出现此错误。

【问题讨论】:

  • 你用的是什么库?你是在 laravel 中使用默认的还是使用其他的?
  • 是的,我只使用默认的护照库。
  • 你跑了composer require laravel/passport 对吗?
  • 是的,请求和获取访问令牌工作正常。但是当尝试使用 api gaurd 访问资源时,我遇到了这个问题。

标签: laravel laravel-passport laravel-5.7


【解决方案1】:

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

正确:

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

错了:

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

注意护照的首字母不能大写!

【讨论】:

    【解决方案2】:

    我遇到了类似的情况,您需要在 config/auth.php 文件中将您的 driver 配置为 passport就我而言,我发现了一个虚拟命令“passportphp artisan passport:keys”而不是“passport””

            'api' => [
            'driver' => 'passport',
            'provider' => 'users',
            'hash' => false,
        ],
    

    接下来仔细检查你的标题并确保你设置了

    授权:“Bearer + token”和接受Application/json

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        Route::get('/user', function () {
            //
        })->middleware('auth:api');
        

        调用受 Passport 保护的路由时,应用程序的 API 使用者应在其请求的 Authorization 标头中将其访问令牌指定为 Bearer 令牌。例如,使用 Guzzle HTTP 库时:

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

        【讨论】:

          【解决方案5】:

          也许你还没有做好戒备。

          请先检查你的保护驱动设置到config/auth.php

          【讨论】:

          • 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
          • 这是我的 auth.php 文件中的代码。我已将护照驱动程序添加到 api gaurd。
          猜你喜欢
          • 2017-07-25
          • 2017-11-11
          • 1970-01-01
          • 2021-09-08
          • 2019-03-27
          • 1970-01-01
          • 2016-10-28
          • 2018-10-15
          • 1970-01-01
          相关资源
          最近更新 更多