【发布时间】:2013-11-16 02:54:23
【问题描述】:
我尝试使用 FOSOAuthServerBundle 来验证用户各自的访问令牌。
作为输出,我收到了客户端 ID 和客户端密钥,但我对 grant_type 感到困惑。它持有什么值??
以下是错误: {"error":"invalid_client","error_description":"客户端凭据无效"}
我该如何解决这个错误????
【问题讨论】:
我尝试使用 FOSOAuthServerBundle 来验证用户各自的访问令牌。
作为输出,我收到了客户端 ID 和客户端密钥,但我对 grant_type 感到困惑。它持有什么值??
以下是错误: {"error":"invalid_client","error_description":"客户端凭据无效"}
我该如何解决这个错误????
【问题讨论】:
您可以在OAuth2 类中的oauth2 repo 找到支持的授权类型列表。他们是:
/**
* 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';
授权类型指定如何在应用程序中验证客户端。详细解释可以在OAuth2 spec 中找到,但它散布在文档中。根据我对OAuth2 Server bundle的了解,每种资助类型的确切含义:
authorization_code - 客户端由先前从服务器获得的code 参数识别和验证password - 客户端通过用户凭据进行身份验证:用户和密码client_credentials - 客户端通过它自己的凭据(您在创建客户端期间提供的凭据)进行身份验证implicit - 一步认证。除非您知道自己在做什么,否则不推荐refresh_token - 客户端通过原始身份验证中提供的刷新令牌进行身份验证。之前发布的 OAuth 令牌失效extensions - ???您可以为每个客户提供超过 1 个grant_type。另外我推荐你阅读很棒的文章OAuth2 Simplified
【讨论】: