reactjs - 在手动输入链接时保持“用户登录状态”
问题描述
我正在开发这个反应应用程序,我已经在使用 JWT 令牌,我正在使用反应路由器来根据链接确定我去哪里。首先,这是我观察到的一件有趣的事情:我有一个名为 auth 的 redux 状态,它存储用户名、id 等。如果我通过调用this.props.history.push(...)前往另一个组件,这是一个反应路由器的事情,我前往的组件将保留正确的 redux 状态。但是,如果我使用基本的 HTML href,则不会维护用户状态。有谁知道这是为什么?
无论如何,我真正关心的是,如果用户决定直接输入指向他或她的个人资料的链接,状态将不会被维护,对解决这个问题有什么见解吗?
另外,我知道我应该尽可能具体地提出我的问题,但在旁注中,是否有人熟悉使用 JWT 触发自动登录,以便在用户访问网站时做出反应?似乎它与检查存储的密钥 JWT 有关。
解决方案
导航起作用和href
不起作用的原因与直接访问站点的人没有从状态中获取值的原因完全相同。
由于状态中的值存储在the memory
而不是persisted
,因此当用户重新访问该站点时,它不会动态加载。如果 App.js 中已经存在状态,您可以将状态存储在 localStorage(或 indexedDB)中并将其重新加载到 redux 存储中。redux-persist
您可以像这样做一样使用库。
推荐阅读
- javascript - 视障用户的警报可访问性开发 Javascript
- javascript - 如何使用 JavaScript 调试 Java 程序?
- sql - 内部连接两个字段上的两个表-日期字段oracle sql的月份和年份匹配
- android - 是什么阻止了其他应用窃取我的 Google OAuth 客户端 ID?
- python - PyTorch optimizer.step() 函数不更新权重
- sql-server - 直接从压缩文件导入 SQL Server
- python - 在获取 Celery 任务的结果时遇到问题
- c# - 如何在 VSTO Excel 中获取所有非公式和非空白单元格?
- bash - 如何将一个命令的输出作为环境变量传递给另一个
- java - Bukkit 插件踢原因只使用第一个词