我正在将JWT令牌与msal一起用于用户身份验证。一旦用户登录,我们便将JWT令牌存储在localStorage中,并在注销时清除localStorage和msal loguut。
但是我想强制关闭浏览器上的用户。为此,我必须在关闭浏览器后清除localStorage。
我尝试为此目的使用onbeforeunload和onunload方法,但此方法也会在页面刷新时调用。 -尝试使用sessionStorage,但这会导致用户登录其标签特定范围的每个标签cos。
我尝试了以下代码
componentDidMount() {
window.addEventListener("beforeunload",this.forceLogout,false)
}
componentWillUnmount() {
window.removeEventListener("beforeunload",this.forceLogout,false)
}
forceLogout(){
localStorage.clear();
}
注意:msal登录重定向回应用程序后,由于使用了HashRouter,我们刷新了页面
答案 0 :(得分:1)
如果您在MSAL.js中使用会话缓存存储选项,则关闭浏览器后,令牌将被浏览器清除。
但是请小心,如果您打开了多个窗口/选项卡,因为浏览器可能会在关闭所有实例之前清除,