Conf(拦截器):增加白名单,针对后端返回401不跳转到登录界面
This commit is contained in:
+20
-9
@@ -63,7 +63,7 @@ const defaultOpt = {login: true};
|
|||||||
function baseRequest(options) {
|
function baseRequest(options) {
|
||||||
|
|
||||||
// 从缓存中获取 token 防止 token 失效后还会继续请求的情况
|
// 从缓存中获取 token 防止 token 失效后还会继续请求的情况
|
||||||
const token = cookie.get('login_status');
|
const token = cookie.get('login_status')
|
||||||
|
|
||||||
// 合并传参过来的 headers
|
// 合并传参过来的 headers
|
||||||
// 如果接口需要登录,携带 token 去请求
|
// 如果接口需要登录,携带 token 去请求
|
||||||
@@ -85,28 +85,39 @@ function baseRequest(options) {
|
|||||||
|
|
||||||
// 发起请求
|
// 发起请求
|
||||||
return http[options.method](url, _params).then(res => {
|
return http[options.method](url, _params).then(res => {
|
||||||
const resData = res.data || {};
|
const resData = res.data || {}
|
||||||
// AI对话某个请求返回为空需要处理这种情况
|
// AI对话某个请求返回为空需要处理这种情况
|
||||||
if (['get', 'GET'].includes(options.method) && _params.params.isNoNeedPublicErrorNotification === 1) {
|
if (['get', 'GET'].includes(options.method) && _params.params.isNoNeedPublicErrorNotification === 1) {
|
||||||
console.log('----')
|
console.log('----')
|
||||||
if (resData.status === 500) {
|
if (resData.status === 500) {
|
||||||
return Promise.reject({msg: resData.msg, res, data});
|
return Promise.reject({msg: resData.msg, res, data})
|
||||||
} else {
|
} else {
|
||||||
return Promise.resolve({})
|
return Promise.resolve({})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (res.statusCode !== 200) {
|
if (res.statusCode !== 200) {
|
||||||
return Promise.reject({msg: "请求失败", res, resData});
|
return Promise.reject({msg: "请求失败", res, resData})
|
||||||
}
|
}
|
||||||
if (resData.status === 401) {
|
if (resData.status === 401) {
|
||||||
|
const whiteApiList = ['guide/status']
|
||||||
|
let flag = false
|
||||||
|
whiteApiList.map(item => {
|
||||||
|
if (options.url.indexOf(item) > -1) {
|
||||||
|
flag = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (flag) {
|
||||||
|
return Promise.resolve(resData, res)
|
||||||
|
} else {
|
||||||
handleLoginFailure();
|
handleLoginFailure();
|
||||||
return Promise.reject({msg: '未登录', res, resData, toLogin: true});
|
return Promise.reject({msg: '未登录', res, resData, toLogin: true})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ([ 403].indexOf(resData.status) !== -1) {
|
if ([ 403].indexOf(resData.status) !== -1) {
|
||||||
handleLoginFailure();
|
handleLoginFailure();
|
||||||
return Promise.reject({msg: res.data.msg, res, resData, toLogin: true});
|
return Promise.reject({msg: res.data.msg, res, resData, toLogin: true})
|
||||||
} else if (resData.status === 200) {
|
} else if (resData.status === 200) {
|
||||||
return Promise.resolve(resData, res);
|
return Promise.resolve(resData, res)
|
||||||
} else {
|
} else {
|
||||||
// 埋点数据推送、获取店铺分享图片
|
// 埋点数据推送、获取店铺分享图片
|
||||||
if (url.indexOf('api/systemStats/push') < 0 && url.indexOf('api/hotelMain/shareImage') < 0) {
|
if (url.indexOf('api/systemStats/push') < 0 && url.indexOf('api/hotelMain/shareImage') < 0) {
|
||||||
@@ -118,9 +129,9 @@ function baseRequest(options) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return Promise.reject({msg: resData.msg, res, data});
|
return Promise.reject({msg: resData.msg, res, data})
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user