更正 return 身份验证问题的状态代码?

Correct return status code for authentication issues?

我们有一个休息服务,我们用它来验证我们的客户。在某些情况下,我们想要向客户报告的信息不仅仅是 "authorization failed"。例如,如果他们的帐户在多次尝试后被锁定,我们将向客户报告他们的帐户已被锁定。在其他情况下,由于业务用例,我们将向他们报告其他问题。即使 username/password 正确,这些问题中的任何一个都将拒绝用户登录。

我认为可能 returning 401 授权 对于这些情况可能是不正确的,但在查看 http 状态代码后我不确定是哪种 return 代码是合适的。也许 403 禁止?意识到我必须 return 向客户说明问题。

即使客户有正确的登录名和密码,他也没有强制性的权限,所以我会选择403 Forbidden.

401 Unauthorized403 Forbidden的区别详解here.