使用redux-persist遇到问题

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

棕白

2022-05-24

在开启clash代理后,进入页面,会报错 400,但是因为redux-persist,他保持了错误的信息,导致,关闭clash后,刷新页面仍然无法进入页面的问题。
报错如下图:
图片描述
图片描述application中的数据如下:
图片描述可以看到,error和productlist数据都保存在了localstorage里面。
当删除全部localstorge内容后,关闭clash代理,重新刷新页面,可以正常访问到页面。

怎样解决这个问题呢?

写回答

1回答

阿莱克斯刘

2022-06-03

不好意思,前段时间生病了,没有回答问题。

从根本原因上来说,这是网站的一个bug,还记得我们怎么判定用户是否登陆呢?我们把jwt保存在localStoage,然后直接检查jwt是否存在,只要jwt存在我们就认定用户已经登陆了。但问题是,jwt是有期限的,如果拿着过期的jwt,后端会报错。于是,网站就进入了死循环,既不能打开页面,用户也不能重新登陆。所以,正确的解决思路是在判定用户是否登陆的时候先解析一下jwt,如果jwt没过期,我们才认为用户登陆,否则判定为用户未登陆。这样就能解决问题了。

如果我没讲清楚,请继续追问。

0
0

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

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

1993 学习 · 1015 问题

查看课程