我尝试使用FOSOAuthServerBundle来验证与其访问令牌相对应的用户。
作为一个输出,我收到了客户端ID和客户端密钥,但我对grant_type有什么困惑。它持有什么值?
以下是错误: {“error”:“invalid_client”,“error_description”:“客户端凭据无效”}
如何解决此错误????
答案 0 :(得分:3)
您可以在课程oauth2 repo的OAuth2找到支持的授权类型列表。他们是:
/**
* Grant types support by draft 20
*/
const GRANT_TYPE_AUTH_CODE = 'authorization_code';
const GRANT_TYPE_IMPLICIT = 'token';
const GRANT_TYPE_USER_CREDENTIALS = 'password';
const GRANT_TYPE_CLIENT_CREDENTIALS = 'client_credentials';
const GRANT_TYPE_REFRESH_TOKEN = 'refresh_token';
const GRANT_TYPE_EXTENSIONS = 'extensions';
Grant类型指定如何在应用程序中对客户端进行身份验证。详细解释可以在OAuth2 spec中找到,但它遍布文档。根据我对OAuth2 Server bundle的了解,每种授权类型的精确含义:
authorization_code
- 通过先前从服务器获取的code
参数来识别和验证客户端password
- 客户端通过用户凭据进行身份验证:用户和密码client_credentials
- 客户端通过自己的凭据(您在客户端创建期间提供的凭据)进行身份验证implicit
- 一步验证。除非你知道你在做什么refresh_token
- 客户端通过原始身份验证中提供的刷新令牌进行身份验证。之前颁发的OAuth令牌无效extensions
- ??? 您可以为每个客户提供超过1 grant_type
个。另外,我建议您阅读精彩的文章OAuth2 Simplified