2

我正在尝试使用 laravel 5.3 使用令牌进行身份验证开发一个宁静的 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'),
     ],
    ]);

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

4

2 回答 2

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/

于 2017-06-28T08:47:30.410 回答
1

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

于 2016-10-07T07:13:11.250 回答