// 401处理
if (err.response.status === 401) {
const { refresh_token } = getToken()
// 没有refresh-token 清空本地缓存并强制跳转到login
if (!refresh_token) {
store.dispatch(onlogout())
history.replace('/login', { from: history.location.pathname })
return Promise.reject(err)
}
// 有refresh-token,带上并重发请求,更新token
try {
// 有的话发请求更新
// 因为token无效所以直接用axios发
const res = await axios.put(
'http://geek.itheima.net/v1_0/authorizations',
null,
{
headers: {
Authorization: `Bearer ${refresh_token}`
}
}
)
console.log(res)
store.dispatch(saveToken({ token: res.data.data.token, refresh_token }))
return instance(err.config)
} catch (err) {
store.dispatch(onlogout())
history.replace('/login', { from: history.location.pathname })
return Promise.reject(err)
}
}
怎么实现无感刷新
最新推荐文章于 2024-05-15 01:40:29 发布