uckelman
(Joel Uckelman)
1
我正在向 /session.json 发送一个 POST 请求,请求体为:
{
"login": "skroob",
"password": "12345",
"authenticity_token": "..."
}
登录成功时,状态码为 200,返回的 JSON 包含大量用户数据。登录失败时,返回的 JSON 如下:
{"error": "Incorrect username, email or password"}
但状态码仍然是 200。这是一个 bug 吗?失败登录的状态码是否应该大于等于 400,以表示失败?
1 个赞
maiki
(maiki)
2

也许吧。我可能会选择 401。
但那些也是HTTP状态码,用于HTTP客户端连接;我认为这种细微差别会导致诸如返回200(“您的POST成功了,这是反馈”)之类的决定。
我自己也不确定。
1 个赞
uckelman
(Joel Uckelman)
4
我能理解为什么登录失败会返回 200,这意味着您的登录 成功地 失败了,而不是 不成功地 失败了。
4 个赞
sam
(Sam Saffron)
5
请注意,这也是一种“功能”,因为它会混淆试图登录的机器人。
我对此是否要更改持保留态度。也许……
6 个赞
uckelman
(Joel Uckelman)
6
我不是在要求更改。我想要的是一种选择:更改,或者确认该行为是故意的——我现在已经得到了。谢谢!
3 个赞