这种持久化方案怎么设置过期时间?

来源:11-11 【redux-persist】登录持久化

我是传奇1122

2021-02-27

保存在本地的JWT是有过期时间的,JWT过期后persist仍然可以读取到它,从而可以获取到用户信息等,使用户保持登录状态。
但是此时发起请求的话携带的JWT是过期的,服务器应该会返回401。
persist 能不能给localstorage 设置和JWT一样的过期时间?

写回答

1回答

阿莱克斯刘

2021-03-02

没错,我们需要对jwt失效时候的api请求做出一定的判断,而课程恰好缺少了这部分的逻辑判断。不过这部分的逻辑判断其实也是简单的,首先我们没有必要对localstorage做过期的限制处理(不是不行、而是太麻烦)。最简单的思路是我们可以使用axios的拦截器,给拦截器设置一个限制,一旦后端api的返回是401(unauthorized)的时候,我们就从redux中删除用户的jwt数据,然后使用react-router-dom把用户重定向到登录页面,要求用户重新登录。

你可以先自己尝试一下这样处理,而我会在近期对课程的这个部分做一个补充更新。


大概的代码:

//img.mukewang.com/szimg/603e0f3a09f9320516820678.jpg

//img.mukewang.com/szimg/603e0f0b0953c01e00000000.jpg


4
1
我是传奇1122
感谢,这样处理蛮合理的。
2021-03-03
共1条回复

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程