10

我正在阅读oauth2 规范unauthorized_client,但我对access_denied错误代码感到困惑。它们似乎表达了相同的错误条件,不是吗?乍一看(通过错误代码),我认为一个是身份验证失败,另一个是授权失败,但它们实际上都是关于授权失败,这将转换为 http 403 状态代码。

 unauthorized_client
       The client is not authorized to request an access token
       using this method.

 access_denied
       The resource owner or authorization server denied the
       request.
4

1 回答 1

11

未经授权的客户端: 实际上可能会出现此错误:

  • 如果客户正在请求不允许的范围
  • 假设您要进行刷新令牌流,但服务器上的客户端配置不允许这样做。
  • 类似的用例,其中客户端尝试根据 Authz 服务器上的客户端配置执行不允许的操作现在上述问题发生在客户端故障时。

access_denied 如果您的客户端正常但可能会发生这种情况

  • 资源所有者取消了 OAuth 流程(例如,当您的某些客户点击 google 时,会出现一个同意页面,其中 Use 可以允许或拒绝访问)

  • 如果资源服务器出于某种原因认为不应授予该客户端访问权限

如您所见, access_denied 是由资源所有者或服务器引起的,而不是由于客户端引起的

我希望这有帮助

于 2016-09-05T20:36:02.387 回答