我正在编写一个需要用户登录的Web应用程序。您可能认识到,有许多工作流可用于响应无效的用户凭据。大多数浏览器都可以在其凭证存储中存储(接受)用户凭证。
我原来的问题分为两部分:
HTTP 401仅用于通过浏览器提示进行“旧式”验证。我正在使用自己的登录页面来摆脱那些浏览器提示。
答案 0 :(得分:2)
身份验证有很多标准。您可以在这里找到几个例子: http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html 您描述的错误代码401用于基本身份验证。它不老:)。
当您使用自己的登录表单时,请遵循标准的表单身份验证流程:
要区分经过身份验证的会话而非经过身份验证的会话,您可以使用HTTP Cookie。 建议使用GUID而不是任何用户信息(例如用户名)。
答案 1 :(得分:0)
401 Unauthorized / 407 Proxy Authentication Required是唯一相关的状态代码。
401只有在您拒绝访问任何资源时才会出现未授权 - 如果您正在重定向或向其显示登录页面,则不会出现。
407就像401一样,除非你期望auth由外部服务处理,并且你希望提供一个Proxy-Authenticate头字段。
更典型的是,您向用户展示了200 OK和登录页面。