我遇到这样的情况,
用户登录后,将在本地存储中维护用户令牌,并且该令牌在所有选项卡中都可用,一旦用户关闭窗口,我就需要从本地存储中删除用户令牌。为此,我可以使用会话存储,但是不能在所有选项卡之间维护会话。那么在关闭浏览器/窗口时如何删除本地存储?
我提到了有关该主题的所有以前的堆栈溢出问题,但我没有得到确切的答案。 有任何建议吗?
答案 0 :(得分:0)
前一段时间在某处找到了这个技巧。您可以将数据存储到localStorage几秒钟,并为存储事件添加事件侦听器。这样,您将知道何时有任何选项卡将某些内容写入本地存储,然后可以将其内容复制到sessionStorage,然后再清除本地存储
答案 1 :(得分:0)
知道了!
我刚刚在app.component.ts文件中添加了以下代码,以在关闭窗口时删除所有本地存储数据。
import { HostListener } from '@angular/core';
@HostListener('window:beforeunload', ['$event'])
public beforeunloadHandler($event) {
localStorage.removeItem('UserToken');
}
答案 2 :(得分:-1)
window.addEventListener("unload", function(event) {
//Use any of local storage methods to remove the user.
localStorage.removeItem('key'); // key you want to be removed.
//OR
localStorage.clear();
});
// You can also try using.
window.addEventListener("unload", function(event) { localStorage.removeItem('key'); });
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onunload
https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload