Как выйти из системы в браузере закрыто. т.е. очистить токен JWT, хранящийся в localStorage (не при обновлении страницы) - PullRequest
0 голосов
/ 04 апреля 2019

Я использую токен JWT с msal для аутентификации пользователя. Как только пользователь вошел в систему, мы сохраняем токен JWT в localStorage и при выходе из системы очищаем localStorage вместе с выходом из msal.

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

Я пытался использовать для этого метод onbeforeunload & onunload, но эти методы также вызываются при обновлении страницы. - попытался использовать sessionStorage, но это привело к тому, что пользователь заходил на каждую вкладку из-за определенной области действия вкладки.

Я попробовал следующий код

componentDidMount() {
   window.addEventListener("beforeunload",this.forceLogout,false)
}

componentWillUnmount() {
    window.removeEventListener("beforeunload",this.forceLogout,false)
}

forceLogout(){
  localStorage.clear();
}

Примечание: после перенаправления входа в msal обратно в приложение мы обновляем страницу из-за использования HashRouter

...