坑:在微信开发者里将token改为失效只会跳登录页一次,但真机测试就会随着页面掉多少个接口跳多少次登录页 以下是解决了多次跳转问题的代码
1.在util/request.js 里面配置拦截器
//配置成功后的拦截器
service.interceptors.response.use(res => {
//......成功的一系列操作
const {code,data,msg} = res.data
if (code == 200) {
return data
} else {
return Promise.reject(msg);
}
}, error => {
if (error.response && error.response.status) {
switch (error.response.status) {
case 403:
var jump = uni.getStorageSync('jump') //以下解决多次跳转登录页的重点
if (!jump) {
//以下做token失效的操作
setTimeout(() => {
uni.navigateTo({
url: `/pages_my/auth`
});
}, 100)
uni.setStorageSync('jump', 'true')
}
break;
default:
uni.showToast({
title: error,
duration: 1500,
icon: 'none',
})
break;
}
}
return Promise.reject(error)
})
2.在token失效跳转的登录页做以下操作 写在onload事件中
onLoad(options) {
uni.removeStorage({
key:'jump'
})
},