HTTP身份验证 - 如何让用户覆盖身份验证数据?

时间:2010-07-04 20:00:56

标签: http authentication

我知道我无法注销HTTP身份验证。

通过Location: http://logout:byebye@yourserver.example.com/方式覆盖似乎适用于除IE之外的大多数浏览器。

我想知道是否可以让用户覆盖身份验证数据。

所以说用户在浏览器中有一些auth数据,现在他们转到我的/ logout页面,它会发回401标题,以便弹出认证窗口并覆盖它。

然而,当他们点击OK(现在在浏览器中覆盖了auth数据)时,/ logout页面重新加载,我无法验证新数据因为单击确定后页面将重新加载,它将再次运行Auth标题,它将再次显示弹出窗口。

基本上,如果浏览器中已经有一些数据集,我如何验证HTTP身份验证数据?

1 个答案:

答案 0 :(得分:1)

  

当他们点击OK(现在在浏览器中覆盖了auth数据)时,/ logout页面重新加载,我无法验证新数据

您只需反向验证提交的数据:如果用户提供正确的身份验证,则返回401响应;如果用户提供了错误的auth或没有auth,则返回200或302以表示已接受新的bad / no auth。然后,浏览器将继续使用bad / no auth进行将来的请求。

添加类似“单击此处,然后输入无用户名或密码并单击确定”的指示,您就可以获得一个可行的,如果HTTP基本身份验证的稍微有点退出功能。

(假设您自己从脚本中吐出auth标头,这很容易;如果您使用的是Web服务器的身份验证处理功能,通常无法启动。)