|
@@ -20,6 +20,8 @@ import { useI18n } from '@/hooks/web/useI18n'
|
|
|
|
|
|
const tenantEnable = import.meta.env.VITE_APP_TENANT_ENABLE
|
|
|
const { result_code, base_url, request_timeout } = config
|
|
|
+// const entUrlStr = '/recruit' // 包含这个就是企业接口,特殊的在api function中设置tokenIndex(优先)
|
|
|
+// let isEnterprise = config.url.includes(entUrlStr)
|
|
|
|
|
|
// 需要忽略的提示。忽略后,自动 Promise.reject('error')
|
|
|
const ignoreMsgs = [
|
|
@@ -58,6 +60,8 @@ service.interceptors.request.use(
|
|
|
config.headers['Accept-Language'] = getCurrentLocaleLang() ?? 'zh_CN'
|
|
|
// 是否需要设置 token
|
|
|
let isToken = (config.headers || {}).isToken === false
|
|
|
+ // token类型
|
|
|
+ const tokenIndex = config.tokenIndex ? config.tokenIndex : getIsEnterprise() ? 1 : 2
|
|
|
whiteList.some((v) => {
|
|
|
if (config.url) {
|
|
|
config.url.indexOf(v) > -1
|
|
@@ -65,8 +69,8 @@ service.interceptors.request.use(
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- if (getToken(config.tokenIndex) && !isToken) {
|
|
|
- (config).headers.Authorization = 'Bearer ' + getToken(config.tokenIndex) // 让每个请求携带自定义token
|
|
|
+ if (getToken(tokenIndex) && !isToken) {
|
|
|
+ (config).headers.Authorization = 'Bearer ' + getToken(tokenIndex) // 让每个请求携带自定义token
|
|
|
}
|
|
|
// 设置租户
|
|
|
if (tenantEnable && tenantEnable === 'true') {
|
|
@@ -146,6 +150,9 @@ service.interceptors.response.use(
|
|
|
return Promise.reject(msg)
|
|
|
} else if (code === 401) {
|
|
|
// 如果未认证,并且未进行刷新令牌,说明可能是访问令牌过期了
|
|
|
+ // token类型
|
|
|
+ const tokenIndex = config.tokenIndex ? config.tokenIndex : getIsEnterprise() ? 1 : 2
|
|
|
+
|
|
|
if (!isRefreshToken) {
|
|
|
isRefreshToken = true
|
|
|
// 1. 如果获取不到刷新令牌,则只能执行登出操作
|
|
@@ -155,11 +162,11 @@ service.interceptors.response.use(
|
|
|
// 2. 进行刷新访问令牌
|
|
|
try {
|
|
|
// 2.1 刷新成功,则回放队列的请求 + 当前请求
|
|
|
- const data = getIsEnterprise() ? await enterpriseRefreshToken(getRefreshToken()) : await userRefreshToken(getRefreshToken())
|
|
|
+ const data = tokenIndex === 1 ? await enterpriseRefreshToken(getRefreshToken()) : await userRefreshToken(getRefreshToken())
|
|
|
setToken(data.accessToken)
|
|
|
setRefreshToken(data.refreshToken)
|
|
|
|
|
|
- config.headers.Authorization = 'Bearer ' + getToken(config.tokenIndex)
|
|
|
+ config.headers.Authorization = 'Bearer ' + getToken(tokenIndex)
|
|
|
requestList.forEach((cb) => {
|
|
|
cb()
|
|
|
})
|
|
@@ -181,7 +188,7 @@ service.interceptors.response.use(
|
|
|
// 添加到队列,等待刷新获取到新的令牌
|
|
|
return new Promise((resolve) => {
|
|
|
requestList.push(() => {
|
|
|
- config.headers.Authorization = 'Bearer ' + getToken(config.tokenIndex) // 让每个请求携带自定义token 请根据实际情况自行修改
|
|
|
+ config.headers.Authorization = 'Bearer ' + getToken(tokenIndex) // 让每个请求携带自定义token 请根据实际情况自行修改
|
|
|
resolve(service(config))
|
|
|
})
|
|
|
})
|