Chrome的HTTP BASIC身份验证注销问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome的HTTP BASIC身份验证注销问题相关的知识,希望对你有一定的参考价值。
我使用以下方法从使用基本HTTP身份验证的HTTP服务器注销。这适用于IE和FireFox。但是对于Chrome,我甚至可以使用错误的用户名和密码来获取html文件。
在Chrome中,流程是,我收到“**********失败***********”错误,然后显示请求的页面(some_server_file.html)。
但是在IE / Chrome中,流程是,我得到“**********失败***********”错误,然后登录对话框提示输入凭证。
无论如何,即使第一次请求失败并且凭据错误,Chrome也会发送正确的用户名和密码。
任何人都可以修复Chrome问题吗?
function logout() {
jQuery.ajax({
type: "get",
url: "some_server_file.html",
async: false,
username: "wronguser",
password: "wrongpass",
headers: {"Authorization": "Basic xxx"}
})
.success(function () {
console.log("********** Success ***********");
})
.fail(function () {
console.log("********** Failed ***********");
});
return false;
}
谢谢
答案
基本身份验证不是为了管理注销而设计的。
如果您希望能够注销用户,可以在服务器上创建一个返回HTTP 403
(禁止)状态代码的端点。这将触发浏览器“注销”/清除基本身份验证缓存。
User clicks logout button -->
Ajax call to /logout which will return HTTP 403 -->
Browser basic authentication cache will be cleared
以上是关于Chrome的HTTP BASIC身份验证注销问题的主要内容,如果未能解决你的问题,请参考以下文章
路由器如何注销 HTTP Basic/Digest Auth?
使用 HTTP-Basic 身份验证发出 HTTP GET 请求