React、Redux该如何处理Token过期的情形?

Token在登陆三十分钟后过期(过期时间随着Token一起返回给前端了),前端如何做到在快过期(前十秒)的时候开始提醒用户,并要求重新登录?

阅读 9.9k
4 个回答

感觉和redux没啥关系,其实你都拿到token了,token又包含了过期时间,那要做的无非拿到token后根据过期时间,设置一个定时操作,比如弹框等

store中保存token,存在token时为已登录,否则未登录。
请不要做什么快过期之类的操作,要是用户已在其他地方登陆,你这边不管过不过期都失效了。
所以根据后端来判断,如果后端返回一个未登录错误,前端应该dispatch一个event,更新store,将token设置为NULL.

token 和有效时间写到 localStorage 里,写一个 getToken 的函数,每次需要使用 token 的时候,通过该函数判断当前时间下 token 是否有效,前十秒的话就在判断的时候多减几秒,有效即得到 token 请求 API,无效则该报错报错,该提醒提醒
不要写到 redux 的 store 里, 那样每次一刷新页面就没了

storage中存储一个过期时间,比如30分钟过期,expire_time 就是三十分钟后的时间戳。
这个思路对吗?还有要完善请高手指教。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题