要实现token过期后用户对页面进行操作自动跳转至登陆页面,也就是调用接口时跳转
1.通过service.interceptors.response.use,对返回的code进行判断,正常则返回数据,
否则跳转至登陆,之前想在request里根据是否有token进行判断,后来发现首次登陆时也是没有token的。。。
2.跳转方法:刚开始一直尝试用this.$router.push('/login'),结果不行,后来发现代码是写在request.js文件里的,不能像.vue文件里那样用,于是直接
- import router from './router'
- router.push('/login');
以下是代码
service.interceptors.response.use(
response => {
if (response.status === 200 && response.data.code === 0) {
return response.data;
} else if(response.data.Code === 1) {
localStorage.removeItem('ms_username');
router.push('/login');
// console.log('notoken')
} else {
Promise.reject();
}
},
error => {
console.log(error);
return Promise.reject();
}
);