登录失败的适当HTTP状态是什么

时间:2015-05-20 03:31:15

标签: angularjs http authentication

我有一个用于登录AngularJS应用程序的API。它只是发布到登录URL,然后如果进展顺利,则返回一个会话对象。如果它出错了,那么正确的HTTP代码应该是什么?

  • 401:未经授权。好吧不是真的。用户有权尝试登录,只是凭据错误。
  • 400:错误请求。好吧不是真的。我理解了这个请求,只是凭据不匹配。

如果你认为401会是最好的,那就会遇到另一个问题:我有一个拦截器来捕获401并显示登录模式作为结果。这个想法是401只会在会话过期时(或者用户的某些内容发生变化)发生,并且用户应该重新进行身份验证。

什么是最好的解决方案?

1 个答案:

答案 0 :(得分:1)

只有当数据真的处于错误状态时,API才会返回400:Bad Request。

我将返回422:不可处理的实体

以下是两篇文章:

http://www.bennadel.com/blog/2434-http-status-codes-for-invalid-data-400-vs-422.htm screenshoot