首页 文章

OAuth 2.0 - 当资源所有者凭据无效时,为什么授权服务器返回400而不是401?

提问于
浏览
12

使用资源所有者密码授予类型时,如果由于资源所有者输入的密码不正确而无法授予访问令牌,则授权服务器似乎应响应HTTP 400(错误请求)状态代码 . 基于我对RFC 6749第5.2节**的理解,我得出了这个结论,其中说“在由于invalid_grant而无法授予令牌的情况下,授权服务器以HTTP 400(错误请求)状态代码响应” . 为invalid_grant列出的原因包括资源所有者凭据无效 .

我的理解是否正确?如果是这样,为什么不返回HTTP 401(未授权)?使用基本身份验证时,无效密码会生成401.为什么OAuth 2.0规定要返回400?这是因为401是为无效的客户端凭据保留的吗?

**见http://tools.ietf.org/html/rfc6749#section-5.2

2 回答

  • 7

    我也想知道这一点,但似乎401响应需要在响应中返回WWW-Authenticate标头,这在这个OAuth流程中没有意义 . This is the link到规范设计者讨论此问题的线程 .

    为了完整性(tl; dr):here是来自OAuth团队的Eran Hammer-Lahav澄清此问题的具体信息 .

  • 9

    我想这是以这种方式实现的,因为客户端提供了无效数据,即(用户名,密码,刷新令牌等)客户端没有尝试访问受保护资源,因此他正在接收HTTP 400以指示他应该更正他的投入 . 通常,当您尝试使用无效或过期的访问令牌访问受保护资源时,您应该会收到401 .

相关问题