fosoauth包中的{“error”:“invalid_client”,“error_description”:“客户端凭据无效”}

时间:2013-11-05 09:24:51

标签: symfony oauth

我尝试使用FOSOAuthServerBundle来验证与其访问令牌相对应的用户。

我根据链接进行了所有设置:http://blog.tankist.de/blog/2013/07/17/oauth2-explained-part-2-setting-up-oauth2-with-symfony2-using-fosoauthserverbundle/

作为一个输出,我收到了客户端ID和客户端密钥,但我对grant_type有什么困惑。它持有什么值?

在浏览器中运行时:http://external.apostle.digibiz.com/web/app_dev.php/oauth/v2/token?client_id=1k1x8xpqbjnogs88cso0gwwk4848oocsscsgwcwowcck4840s8&client_secret=3ntf3p6h6c6c04g4o08ggkgcwc0co0sk804gwckow88g0ggck0&grant_type=client_credentials

以下是错误: {“error”:“invalid_client”,“error_description”:“客户端凭据无效”}

如何解决此错误????

1 个答案:

答案 0 :(得分:3)

您可以在课程oauth2 repoOAuth2找到支持的授权类型列表。他们是:

/**
* 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

相关问题