【发布时间】:2020-08-17 13:18:01
【问题描述】:
在更改密码请求中,如果旧密码不正确,正确的响应是什么?
我在想 401 未经授权?还是 400 Bad Request?
【问题讨论】:
在更改密码请求中,如果旧密码不正确,正确的响应是什么?
我在想 401 未经授权?还是 400 Bad Request?
【问题讨论】:
这有点棘手,因为我认为您可以为其中任何一个提出论点,而且我也觉得 409 和 422 可以争论。
最终,我认为使用更具体的 HTTP 状态代码很重要,如果通用客户端可以对响应做一些有用的事情。因此,我认为在这种情况下并不重要。
我想我会不使用 401,因为我将它与 Authorization 标头相关联,在这种情况下您可能没有使用它。
422或400是最好的。这完全基于意见。其中任何一个都表明请求有问题(422 更具体一点:格式没有问题,但发送到服务器的实际值有问题)。
409有时用来表示当前请求有效,但是服务器当前状态阻止了它成功。鉴于服务器的当前状态是“当前密码是别的”,409 可能是合适的。
最终我不认为有任何错误真的,这并不真的重要,但我的投票将首先投给422,然后是400。
一些来源(前几个是我的,最后一个链接来自 http 规范的作者之一)
【讨论】:
答案与登录页面的答案相同。
现在,答案是什么?在这个问题上存在一些分歧,但在我看来是200。我在this answer 中讨论这个问题并链接到其他一些意见。