如何清除浏览器中保存的http基本授权凭据

问题描述

在有角度的应用程序中,我将XHR登录请求发送到具有http auth标头的无状态Rest服务器:

http
          .get(`${site.url}/login`,{
            headers: {
              Authorization: `Basic ${btoa(`${username}:${password}`)}`,},withCredentials: true,})

那么,无论何时我请求同一台服务器,都不需要再次发送凭据:浏览器会自动保存它们。很好,通过这种方式,我不必将凭据保存在浏览器上(服务器是无状态的,因此没有会​​话或令牌可用)。

但是,这带来了一个安全问题:当用户注销(这是存储在浏览器中的简单布尔值)时,他的浏览器仍然能够连接到服务器:如果使用XSS,则有人可以再次连接。

从Javascript是否可以清除这些凭据?我看到了一些骇客行为(使用错误的凭据请求服务器...),但我正在寻找一种一致且安全的方法

解决方法

标题是不可变的-不能更改。不过,您可以使用一种称为JWT(JSON网络令牌)的技术。Here a link for JWT's website.