我在一个使用基本身份验证的网站上工作。使用Chrome我已经登录使用基本的认证。现在我想从浏览器中删除基本的身份验证细节,并尝试不同的登录。

使用Chrome浏览器时,如何清除当前的基本身份验证细节?


当前回答

在我的情况下(Win Chrome v100),它在使用https://@domain.com删除凭据时起作用。在开发工具中验证并查询document.URL。

其他回答

这是一个快速的技巧。 例如,您已经通过user1:password1输入url https://example.com的基本身份验证。要清除它,只需打开新标签,然后:

转到https://any:any@example.com,您的密码将被删除。

Any: Any是任意字符串。

你可以打开一个隐身窗口Ctrl+Shift+n每次你做一个测试。隐身窗口将不记得您上次输入的用户名和密码。

要使用这个技巧,请确保关闭所有隐身窗口。所有隐身窗口共享相同的缓存。换句话说,你不能打开多个独立的隐身窗口。如果您登录其中一个窗口并打开另一个窗口,这两个窗口是相关的,您将看到新窗口记住了第一个窗口中的身份验证信息。

在Chrome中还没有办法做到这一点(Chrome 58)

我发现最好的解决方案是在隐身窗口中打开url,这将迫使您重新输入基本的身份验证凭据。

当您想要更改凭证时,请关闭隐身窗口并启动另一个隐身窗口。

最奇怪的事情,但在我的情况下,我试图访问一个具有基本认证的页面,Chrome甚至没有提示就发送无效凭据。在我注销了我的LastPass插件后,一切都恢复正常了。所以我认为LastPass开始支持基本身份验证,但它没有提供使用什么密码的选项,它看起来只是为匹配的域发送一个随机密码(这在我的情况下是非常有问题的)。

也许能帮到别人。

function logout(url){
    var str = url.replace("http://", "http://" + new Date().getTime() + "@");
    var xmlhttp;
    if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest();
    else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4) location.reload();
    }
    xmlhttp.open("GET",str,true);
    xmlhttp.setRequestHeader("Authorization","Basic YXNkc2E6")
    xmlhttp.send();
    return false;
}