这种持久化方案怎么设置过期时间?
来源:11-11 【redux-persist】登录持久化

我是传奇1122
2021-02-27
保存在本地的JWT是有过期时间的,JWT过期后persist仍然可以读取到它,从而可以获取到用户信息等,使用户保持登录状态。
但是此时发起请求的话携带的JWT是过期的,服务器应该会返回401。
persist 能不能给localstorage 设置和JWT一样的过期时间?
写回答
1回答
-
没错,我们需要对jwt失效时候的api请求做出一定的判断,而课程恰好缺少了这部分的逻辑判断。不过这部分的逻辑判断其实也是简单的,首先我们没有必要对localstorage做过期的限制处理(不是不行、而是太麻烦)。最简单的思路是我们可以使用axios的拦截器,给拦截器设置一个限制,一旦后端api的返回是401(unauthorized)的时候,我们就从redux中删除用户的jwt数据,然后使用react-router-dom把用户重定向到登录页面,要求用户重新登录。
你可以先自己尝试一下这样处理,而我会在近期对课程的这个部分做一个补充更新。
大概的代码:
412021-03-03
相似问题