Удалить локальное хранилище, когда окно закрыто Angular 2 - PullRequest
0 голосов
/ 27 января 2019

После того как пользователь вошел в систему, я поддерживаю токен пользователя в локальном хранилище, и он доступен на всех вкладках, и как только пользователь закроет окно, мне нужно удалить токен пользователя из локального хранилища.

Как удалить локальное хранилище, когда браузер / окно / вкладка закрыта?

Ответы [ 3 ]

0 голосов
/ 27 января 2019

Нашел этот совет где-то некоторое время назад.Вы можете сохранить свои данные в localStorage на пару секунд и добавить прослушиватель событий для события хранения.Сделав это, вы узнаете, когда какая-либо из вкладок что-то записала в ваше localStorage, и вы можете скопировать ее содержимое в sessionStorage, а затем просто очистить localStorage после этого

0 голосов
/ 28 января 2019

Понял!

Просто я добавил приведенный ниже код в файл app.component.ts, чтобы удалить все данные локального хранилища при закрытии окна.

import { HostListener } from '@angular/core';

@HostListener('window:beforeunload', ['$event'])
public beforeunloadHandler($event) {
  localStorage.removeItem('UserToken');
}
0 голосов
/ 27 января 2019
    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

...