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

2024-03-30

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

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

** See https://www.rfc-editor.org/rfc/rfc6749#section-5.2 https://www.rfc-editor.org/rfc/rfc6749#section-5.2


我猜它是这样实现的,因为客户端提供了无效数据,即(用户名、密码、刷新令牌等)客户端没有尝试访问受保护的资源,因此他收到 HTTP 400 以表明他应该更正他的投入。通常,当您尝试使用无效或过期的访问令牌访问受保护的资源时,您应该收到 401。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐