首页 > 解决方案 > 在用户尝试登录之前发送 401 错误是否正确?

问题描述

在我正在开发的 REST Api 中,有人告诉我直接向“获取当前用户 (/me)”url 发送请求,而不检查是否有会话令牌,并在收到 401 响应时将他重定向到登录页面.

这个对吗?我认为浏览器不应该收到 4xx 响应,除非用户做了他不应该做的事情。

标签: javascriptapirest

解决方案


我们正是这样做的。我们基本上发送一个 HTTP 请求,如果它以 . 的形式返回401,我们知道我们需要让用户登录。

我们还发送一个Link标头来告诉客户端用户应该去哪里登录:

HTTP/1.1 401 Unauthorized
Link: </login>; rel="authenticate"

推荐阅读