使用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没过期,我们才认为用户登陆,否则判定为用户未登陆。这样就能解决问题了。
如果我没讲清楚,请继续追问。
00
相似问题