【问题标题】:How to enable client credentials grant type in laravel passport如何在 laravel 护照中启用客户端凭据授予类型
【发布时间】:2017-02-12 10:35:05
【问题描述】:

我正在尝试使用 laravel 5.3 的令牌开发一个 restful api 进行身份验证。我还添加了 laravel 护照,我认为它会帮助我更快地构建 api。我想通过 api 提供的资源对所有用户都是通用的,没有特定于用户的。所以想我应该使用授权类型:客户端凭据。我在 laravel 文档中找不到有关此授权类型的任何帮助

https://github.com/laravel/passport/pull/34/files 此链接显示客户端凭据授予类型已添加到 laravel 护照。但是当我尝试将授权类型作为客户端凭据时

    $http = new \GuzzleHttp\Client;
    $response = $http->post('http://site.dev/oauth/token', [
        'form_params' => [
            'grant_type' => 'client_credentials',
            'client_id' => config('api.client_id'),
            'client_secret' => config('api.client_secret'),
            'redirect_uri' => config('api.redirect_uri'),
     ],
    ]);

它在使用的授权类型中给出错误。

【问题讨论】:

  • 我想我应该使用密码授权类型。
  • 我使用密码授权创建了一个客户端并编辑了数据库表列 password_client ,更改为 1 -> 0。它返回 api 令牌。如何创建密码客户端?只有使用 php artsan 命令的选项

标签: php laravel oauth-2.0 laravel-passport


【解决方案1】:

当你安装 Laravel Passport 时,默认情况下在 oath_clients 表中安装了一个密码授权,但 password_client 列应该是 1 而不是 0。
然后你将 some form_data 发送到 /oauth/token url 并得到 access_token 作为回报.

【讨论】:

  • 创建密码授权的唯一方法是 php artisan passport:client --password。我想从管理员端创建密码客户端。我认为在下一次护照更新中将添加更多文档和代码,完全实现所有四项授权
【解决方案2】:

我使用的是客户端凭据方法,因为它是机器对机器的调用。我收到类似 { "error": "Unauthenticated." 的错误。 }` 使用邮递员时。我使用了访问类型和授权标头,但遇到了同样的错误。然后我用谷歌搜索并尝试了下面链接中解释的方法。有效。 :) :) http://filljoyner.com/2017/03/01/how-to-use-client-credentials-grant-tokens-for-your-api-authorization-with-laravel-5-4s-passport/

【讨论】:

  • 您应该将评论用于此类建议。如果您正在回答,请解释一下。
猜你喜欢
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 2017-03-11
  • 2016-08-15
  • 2019-12-03
  • 1970-01-01
  • 2020-02-25
相关资源
最近更新 更多