情况是这样的,登录后,我将用户的token存在了localStorage中,然后用户刷新或者重启浏览器后,我会在在初始化的时候从localStorage中取出token,然后发送一个携带token的请求到后台,然后根据返回token是否过期的结果,来决定是否重定向到登录页面,现在的问题是,render()不会等待我的请求,那请问怎么实现,让render等待我的请求呢?<Auth path="/exchangeRecord" component={ExchangeRecord} />ExchangeRecord是一个组件,Auth是用来拦截的容器组件
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
在前后端分离的情况下,不建议cookie
和session
。fetch
默认都不会带cookie
的。
楼主说的思路没有问题,也是通用解决方案。
就是为什么要让render
等待fetch
呢?完全没有必要。
你可以尝试如下操作:
页面跳转或者加载组件依赖接口返回的数据时,你就等到fetch
返回再操作,就是放到then
中,这之前再加一级then
,在此判断返回状态。
所以,当服务端判断token
失效,返回一个特定的状态码。在then
中直接处理掉,一般history.push(login page)
,然后清除localstorage
.
添加回答
举报
0/150
提交
取消