首页 > 解决方案 > 删除localStorage时刷新页面

问题描述

我正在用 reactjs 构建一个应用程序。

我在 localStorage 中使用 JWT,以便在后端的每个请求中对用户进行身份验证。

我想要做的是在通过用户的 cookie 删除 localStorage 或 JWT 令牌过期时自动注销用户。

是否可以添加一个在删除 localStorage 时触发的侦听器?

现在我正在做类似的事情

if(!!localStorage.getItem('id_token') && !this.isTokenExpired(token)) {
  // eslint-disable-next-line
  location.reload(true);
}

在每个按钮功能中添加这些代码行是有效的,但效率不高。

所以我想要一个监听器,当 localStorage 被删除或过期时触发上述代码。

有什么建议吗?先感谢您

标签: reactjslocal-storage

解决方案


最后我通过添加一个事件监听器和 index.js 来解决它

window.addEventListener('storage', function(e) {
  if(!Auth.loggedIn()) {
    // eslint-disable-next-line
    location.reload(true);
  }
});

因此,当存储更改时,我会检查用户是否已登录并重新加载页面。当页面重新加载时,我注销了用户。


推荐阅读