大家都知道,用户初次打开客户端时,只是一介平民,毫无身份特权可言。 当用户将正确的账号以及密码,呈递给服务端进行检验,待检验成功之后,服务器端便会亲手打造一个名为Token的令牌,并给予客户端。 客户端自此便拥有了身份,也拥有了符合身份的资源请求权限…… 但,Token是有时间限制的!关于时间的设置不宜过长,这样不够安全。更不宜过短,这样会让用户频繁登陆,遭受吐槽! 那有没有什么比较好的解决方案?有,通过无感刷新token!即token在更新时用户无感知,从而避免用户的频繁登陆。
import axios from 'axios';
axios.interceptors.response.use(response => {
// token异常
if (response.data.code === 409) {
removeToken();// 删除token
router.push('/login');
return Promise.reject("token异常");
} else if (response.data.code === 410) {// 服务端Token更新
const {token} = res.data
setToken(token);// 重置token
}
return response && response.data
}
)
以上是个人对开发中使用Token的一点总结,如有叙述不当之处请指正,我将及时改正并感谢!