新增
This commit is contained in:
@@ -10,6 +10,10 @@ import { clearAuthInfo, getToken } from '../auth'
|
||||
import feedback from '../feedback'
|
||||
import { Axios } from './axios'
|
||||
import type { AxiosHooks } from './type'
|
||||
import { isBrowserOnWecomBindOAuthLanding } from '../wecomBindGuard'
|
||||
|
||||
const BIND_WORK_WECHAT_PATH = '/bind-work-wechat'
|
||||
let lastWorkWechatBindRedirectAt = 0
|
||||
|
||||
// 处理axios的钩子函数
|
||||
const axiosHooks: AxiosHooks = {
|
||||
@@ -65,6 +69,22 @@ const axiosHooks: AxiosHooks = {
|
||||
clearAuthInfo()
|
||||
router.push(PageEnum.LOGIN)
|
||||
return Promise.reject()
|
||||
case RequestCodeEnum.NEED_BIND_WORK_WECHAT:
|
||||
// 回跳瞬间 currentRoute 可能还是 /,误判后 replace 无 query,地址栏 code 被清 → 绑定永远不请求
|
||||
if (
|
||||
router.currentRoute.value.path === BIND_WORK_WECHAT_PATH ||
|
||||
isBrowserOnWecomBindOAuthLanding()
|
||||
) {
|
||||
return Promise.reject(data)
|
||||
}
|
||||
{
|
||||
const now = Date.now()
|
||||
if (now - lastWorkWechatBindRedirectAt > 400) {
|
||||
lastWorkWechatBindRedirectAt = now
|
||||
void router.replace(BIND_WORK_WECHAT_PATH).catch(() => {})
|
||||
}
|
||||
}
|
||||
return Promise.reject(data)
|
||||
case RequestCodeEnum.OPEN_NEW_PAGE:
|
||||
window.location.href = data.url
|
||||
return data
|
||||
|
||||
Reference in New Issue
Block a user