如何解决基本HTTP身份验证时注销用户的问题(使浏览器清除缓存的凭据并要求用户再次登录凭据)?
我已经查看了以下问题:
如何解决基本HTTP身份验证时注销用户的问题(使浏览器清除缓存的凭据并要求用户再次登录凭据)?
我已经查看了以下问题:
/logout
;与登录脚本类似,它必须位于Web应用程序的根目录中,以确保身份验证设置为正确的路径),而不是要求有效的用户名/密码才能继续,需要无效的凭据。/logout
,在Authorization
头中发送有效凭据。您的脚本响应401
,浏览器弹出用户名/密码提示框。您告诉用户输入虚假值(或者在大多数浏览器中,只需将其留空即可),然后单击“确定”。这将使用无效的凭据替换存储的有效凭据。您的脚本然后返回一个“已注销”的页面或重定向回主页,并且用户不再登录。401
响应后尝试使用存储的凭证进行尝试。这意味着您不应该将没有Authorization
头的请求视为注销脚本的OK;它必须存在,即使其中包含空凭证。这种不幸的行为还意味着您不能为Safari用户在同一URL下提供已登录和未登录版本的相同页面,并且它使Safari浏览基本受保护的网站变慢,因为每个页面请求都必须发生两次。)XMLHttpRequest
(例如xhr.open('GET', '/app', true, '_', '_')
)。这具有在IE和Firefox中替换存储凭据的非标准副作用(但不是Opera;不确定其他浏览器)。