reactjs - 删除localStorage时刷新页面
问题描述
我正在用 reactjs 构建一个应用程序。
我在 localStorage 中使用 JWT,以便在后端的每个请求中对用户进行身份验证。
我想要做的是在通过用户的 cookie 删除 localStorage 或 JWT 令牌过期时自动注销用户。
是否可以添加一个在删除 localStorage 时触发的侦听器?
现在我正在做类似的事情
if(!!localStorage.getItem('id_token') && !this.isTokenExpired(token)) {
// eslint-disable-next-line
location.reload(true);
}
在每个按钮功能中添加这些代码行是有效的,但效率不高。
所以我想要一个监听器,当 localStorage 被删除或过期时触发上述代码。
有什么建议吗?先感谢您
解决方案
最后我通过添加一个事件监听器和 index.js 来解决它
window.addEventListener('storage', function(e) {
if(!Auth.loggedIn()) {
// eslint-disable-next-line
location.reload(true);
}
});
因此,当存储更改时,我会检查用户是否已登录并重新加载页面。当页面重新加载时,我注销了用户。
推荐阅读
- heatmap - 如何在 r 上的热图相关矩阵中取出一个变量而忽略 2 个变量
- javascript - 如何通过 webpack 将 npm 模块添加到我的 index.html 文件中?
- android - android,如何使用 PendingIntent 在 Playstore 表单 FCM 通知中打开应用程序
- php - PHP8:未定义的符号链接()函数
- r - 在 r 中按组标记非连续值
- javascript - 如何根据 div 大小显示画布
- redux - Redux RTK 查询:getDefaultMiddleware 不是函数
- javascript - UseQuery 在通过 apollo react 使用 useMutations 重定向后不起作用
- c - 将 meta-iot-cloud 添加到 bitbake 时,rootfs 中不存在 azure-macro-utils
- javascript - 在移动设备中查看时如何仅显示一定数量的页面?