最适合用于过期登录的HTTP状态(基于表单的登录)。

问题描述 投票:3回答:1

我正在写一些代码,以有用的方式响应Web应用程序中的过期登录。这是基于表单的登录。这是我想决定的HTTP状态码。

我试过401,但这会导致浏览器中弹出一个验证对话框。我发现一些帖子提到了一些微软应用程序中使用的错误 "440 Login Expired",但我在W3C文档中找不到任何关于这个问题的内容,也找不到任何其他似乎适合过期表单登录的代码。

那么,用440来回应是否可以--这是一种特别的标准吗?还是有更好的代码被其他人使用?或者说,这只是一个应用程序的案例?

非常感谢

http login
1个回答
0
投票

这可能是一个近似于 登录表单的HTTP状态码是否正确?. 你的登录是否已经过期或者你是否从来没有过登录应该没有区别。

在其他问题上给出的答案是

  1. 400 - 接受的答案,我坚决不同意。
  2. 401 - 有一个WWW-Authenticate头,它可能包含任何东西,这并不重要,如果你不在这里放一个基本的或摘要的认证挑战,浏览器应该(!?)忽略它。

但我缺少的是登录表单如何传递的真正区别。它可以是*注入作为对当前请求的响应(这就是401答案所建议做的事情)*或者用重定向来交付,例如302到一个登录页面,一旦完成对话,就会重定向回原始请求。

我已经用302重定向到登录页面运行我的应用程序10年了。但我不喜欢它了。我想返回401,这样我的脚本代理、REST等就能正常工作了。

那么,需要做什么才能真正 解决 这个问题是为了检查浏览器在收到带有WWW-Authentication头的401响应时,如果没有摘要或基本的挑战,会有什么表现。如果他们总是带起他们的对话,那么无论我们认为怎样做才是正确的、合适的,都是不行的。

我还需要发送带有Location:头的401,看看浏览器是否会重定向。

© www.soinside.com 2019 - 2024. All rights reserved.