4

我尝试使用 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=3ntf3p6h6c6c04g4o08ggkgcwc0co0sk804gwckow8

以下为错误:{"error":"invalid_client","error_description":"客户端凭据无效"}

我该如何解决这个错误????

4

1 回答 1

4

您可以在OAuth2类的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';

授权类型指定如何在应用程序中验证客户端。详细解释可以在OAuth2 规范中找到,但它散布在文档中。根据我对OAuth2 Server bundle的了解,每种授权类型的确切含义:

  • authorization_codecode- 客户端通过先前从服务器获得的参数进行识别和验证
  • password- 客户端通过用户的凭据进行身份验证:用户和密码
  • client_credentials- 客户端通过它自己的凭据(您在客户端创建期间提供的凭据)进行身份验证
  • implicit- 一步认证。除非您知道自己在做什么,否则不推荐
  • refresh_token- 客户端通过原始身份验证中提供的刷新令牌进行身份验证。之前颁发的 OAuth 令牌无效
  • extensions- ???

您可以为每个客户提供超过 1grant_type个。另外我建议您阅读伟大的文章OAuth2 Simplified

于 2013-11-28T15:11:56.890 回答