首页 > 解决方案 > Laravel Passport 客户端凭证授予

问题描述

我使用 Laravel Passport 进行 API 身份验证。我已经设置了密码凭据授予并且它有效。现在我需要一个客户端凭据授权来进行机器对机器的身份验证。
我用 php artisan passport:client --client. 我试图用这个身体向 /oauth/token 提出请求(失眠):

{
    "client_id":3,
    "secret":"wJWuVVydkHIQQ6gC7xvd0eEKytIFAD3pa149e6TR",
    "grant_type":"client_credentials"
}

这是我从 Passport 得到的回复:

{
  "error": "invalid_client",
  "error_description": "Client authentication failed",
  "message": "Client authentication failed"
}

有谁知道为什么它是一个无效的客户?
这是我的客户端的 oauth_clients 表中的条目,导出为 json:

{
    "id":"3",
    "user_id":null,
    "name":"ClientCredentials Grant Client",
    "secret":"wJWuVVydkHIQQ6gC7xvd0eEKytIFAD3pa149e6TR",
    "redirect":"",
    "personal_access_client":"0",
    "password_client":"0",
    "revoked":"0",
    "created_at":"2019-04-30 17:06:17",
    "updated_at":"2019-04-30 17:06:17"
}

标签: laravellaravel-5oauth-2.0laravel-passportlaravel-5.8

解决方案


在您的请求中,secret应该client_secret改为使用参数。

来自文档:https ://laravel.com/docs/master/passport#client-credentials-grant-tokens

在此处输入图像描述


推荐阅读