【问题标题】:Refresh page when localStorage is deleted删除localStorage时刷新页面
【发布时间】:2019-06-02 01:51:21
【问题描述】:

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

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

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

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

现在我正在做类似的事情

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

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

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

有什么建议吗?提前谢谢你

【问题讨论】:

  • 您能否在检索 localStorage 数据时将您的注销代码附加到条件中,以便如果它不存在您立即注销用户?
  • 首先感谢您的回复。这不是我需要的。我想自动注销他,当我需要 localStorage 数据时不需要

标签: reactjs local-storage


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多