feat: 响应拦截添加登录过期验证

This commit is contained in:
yangzhe 2025-07-14 09:32:07 +08:00
parent c63f2c453a
commit 1ed96024b4
1 changed files with 32 additions and 5 deletions

View File

@ -10,7 +10,7 @@ const install = (Vue, vm) => {
// baseUrl: 'http://115.238.47.235:8993',
// 如果将此值设置为true拦截回调中将会返回服务端返回的所有数据response而不是response.data
// 设置为true后就需要在this.$u.http.interceptor.response进行多一次的判断请打印查看具体值
// originalData: true,
originalData: true,
// 设置自定义头部content-type
// header: {
// 'content-type': 'xxx'
@ -47,10 +47,19 @@ const install = (Vue, vm) => {
// 响应拦截,判断状态码是否通过
Vue.prototype.$u.http.interceptor.response = (res) => {
uni.hideLoading();
// 检查是否为401未授权错误
if (res.statusCode === 401) {
handleAuthError(vm);
return false;
}
return res.data;
if (res.succeed == true || res.success == true) {
// return res.data || res;
return res;
} else {
} else {
// uni.showToast({
// title: res.error,
// duration: 2000,
@ -59,13 +68,31 @@ const install = (Vue, vm) => {
// uni.navigateTo({
// url: "/pages/login/login/login",
// });
return res;
// return false;
return false;
}
}
}
// 提取处理401错误的函数
function handleAuthError(vm) {
vm.$u.vuex("vuex_user", "");
vm.$u.vuex("vuex_token", "");
uni.clearStorage();
// 显示提示
uni.showToast({
title: '登录已过期,请重新登录!',
icon: 'none',
duration: 1500
});
// 延迟跳转到登录页
uni.reLaunch({
url: '/pages/login/login/index'
});
}
export default {
install
}