我知道我无法注销HTTP身份验证。
通过Location: http://logout:byebye@yourserver.example.com/
方式覆盖似乎适用于除IE之外的大多数浏览器。
我想知道是否可以让用户覆盖身份验证数据。
所以说用户在浏览器中有一些auth数据,现在他们转到我的/ logout页面,它会发回401标题,以便弹出认证窗口并覆盖它。
然而,当他们点击OK(现在在浏览器中覆盖了auth数据)时,/ logout页面重新加载,我无法验证新数据因为单击确定后页面将重新加载,它将再次运行Auth标题,它将再次显示弹出窗口。
基本上,如果浏览器中已经有一些数据集,我如何验证HTTP身份验证数据?
答案 0 :(得分:1)
当他们点击OK(现在在浏览器中覆盖了auth数据)时,/ logout页面重新加载,我无法验证新数据
您只需反向验证提交的数据:如果用户提供正确的身份验证,则返回401响应;如果用户提供了错误的auth或没有auth,则返回200或302以表示已接受新的bad / no auth。然后,浏览器将继续使用bad / no auth进行将来的请求。
添加类似“单击此处,然后输入无用户名或密码并单击确定”的指示,您就可以获得一个可行的,如果HTTP基本身份验证的稍微有点退出功能。
(假设您自己从脚本中吐出auth标头,这很容易;如果您使用的是Web服务器的身份验证处理功能,通常无法启动。)