Выход из проблемы со второй вкладки при выходе из первой вкладки в Angular - PullRequest
0 голосов
/ 01 мая 2020

Я использую sessionStorage для хранения accessToken. Мои шаги следующие: -

  • Вход в систему на сайте
  • Нажмите на дубликат опции вкладки. Он будет отображать веб-сайт во второй вкладке.
  • Выйти из первой вкладки.
  • Ожидается выход из другой вкладки, когда я обновлю / нажму любое действие на второй вкладке.

На самом деле это не выводит меня из другой вкладки.

Я добавил код ниже, но он не работает должным образом.

@HostListener('window:storage', ['$event'])
    onStorageChange(sv:StorageEvent) {       
      if(sv.storageArea == sessionStorage) 
      {
        let token = sessionStorage.getItem('accessToken');
        if(token == null || token == undefined)
            this.router.navigate(['/login']);
      }
    }

Пожалуйста, дайте мне знать, если я делаю какую-либо ошибку. В настоящее время я использую этот код на домашней странице. Это правильное место?

1 Ответ

0 голосов
/ 01 мая 2020

Прежде всего, вы должны поместить этот код в файл app.component.ts

, во-вторых, написать событие окна

 window.addEventListener('storage', (event) => {
            if (event.storageArea == localStorage) {
                let token = localStorage.getItem('accessToken');
                if (token == undefined) {
                    // Perform logout
                    //Navigate to login/home
                    this.router.navigate(['/login']);
                }
            }
        });

Я считаю, что оно должно работать нормально

...