【问题标题】:Laravel 5.3 + Passport: always unauthenticated errorLaravel 5.3 + Passport:总是未经身份验证的错误
【发布时间】:2017-09-01 04:48:45
【问题描述】:

在我当前的项目中使用 Passport 时,我总是收到“未经身份验证的错误”。这就是我过去 3 天所做的:

  • 安装和配置 Passport(如文档所述)
  • 向 Postman 请求令牌(密码授予令牌)
  • 使用令牌请求受保护的路由(auth:api 中间件)
  • 得到 `{“错误”:“未经身份验证。” }`
  • 搜索、搜索和研究
  • 得到 `{“错误”:“未经身份验证。” }`

然后,我安装了一个新的 L5.3 和一个新的数据库并且工作正常。即使使用我当前的数据库!

我已经尝试了所有我发现但没有成功的解决方案......

谁能帮助我?任何想法将不胜感激。

谢谢。

【问题讨论】:

  • 我猜您根据有关 OAuth 的文档在标头中将令牌作为授权参数发送,但是 apache 阻止此参数并且护照中间件无法验证您的请求,将身份验证名称更改为其他内容,例如令牌或密钥或所有内容除了授权。成功

标签: laravel-5.3 laravel-passport


【解决方案1】:

我和你有同样的问题,到处寻找解决办法。

就我而言,这似乎是 Apache 的错。 Apache 正在删除标题“Authorization: Bearer TOKEN_HERE”,因此 auth:api 无法按预期工作(获得 401 未授权)。

我们最终尝试添加到我们的 .htaccess:

RewriteCond %{HTTP:Authorization} ^(.*)

RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

它神奇地起作用了。

我真的希望它有所帮助,我们花了一整天的时间尝试了许多解决方案,这是对我们有用的解决方案。

【讨论】:

    【解决方案2】:

    您使用哪个grant_type 生成此令牌?

    可能的解决方案如下

    1:如果你使用客户端凭证生成你的access_token,你必须开启client_credentials,中间件如下。

    1.1 添加到\App\Http\Kernel.php中的routeMiddleware

    'client_credentials'     => \Laravel\Passport\Http\Middleware\CheckClientCredentials::class,
    

    1.2 在您的路由中也使用“client_credentials”中间件。

    Route::group(['prefix' => 'v1','middleware' => 'client_credentials'], function () {
    
        // Your routes here
    
    });
    

    2:对于授予类型密码

    2.1 : 创建密码授予客户端

    php 工匠护照:client --password

    2.2 : 请求带有以下标头字段的令牌

        'grant_type' => 'password',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'username' => 'taylor@laravel.com',
        'password' => 'my-password',
    

    端点/oauth/token

    您现在获得的令牌应该可以让您访问您的 api。

    【讨论】:

      【解决方案3】:

      我的问题是一个遗漏,我正在构建一个 GraphQL api,并在配置文件“graphql.php”的中间件行中放置

      'middleware' => ['auth'],
      

      当正确的方法是:

      'middleware' => ['auth:api'],
      

      【讨论】:

        猜你喜欢
        • 2018-01-05
        • 2017-05-13
        • 2018-05-02
        • 2017-01-06
        • 1970-01-01
        • 2018-08-12
        • 2019-10-07
        • 1970-01-01
        • 2017-02-11
        相关资源
        最近更新 更多