From d2e7f4bf7a2f5f043b646d10cf401869130247ce Mon Sep 17 00:00:00 2001 From: weiwei Date: Tue, 20 May 2025 10:55:41 +0800 Subject: [PATCH] =?UTF-8?q?request=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../verifyDeviceImpModel.ts | 4 ++-- src/sheep/utils/request.ts | 22 ++++++------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/sheep/components/verifyDeviceImpModel/verifyDeviceImpModel.ts b/src/sheep/components/verifyDeviceImpModel/verifyDeviceImpModel.ts index 82b0a70..043c552 100644 --- a/src/sheep/components/verifyDeviceImpModel/verifyDeviceImpModel.ts +++ b/src/sheep/components/verifyDeviceImpModel/verifyDeviceImpModel.ts @@ -7,10 +7,10 @@ const showVerifyDeviceImpModel = (onClose: () => any = () => null) => { return new Promise((resolve, reject) => { if (VerifyDeviceImpModelInstance) return - const close = () => { + const close = async () => { render(null, document.body) VerifyDeviceImpModelInstance = false - onClose() + await onClose() } const vnode = h(VerifyDeviceImpModel, { diff --git a/src/sheep/utils/request.ts b/src/sheep/utils/request.ts index 88429e4..4b63ab8 100644 --- a/src/sheep/utils/request.ts +++ b/src/sheep/utils/request.ts @@ -10,9 +10,8 @@ const TOKEN_KEY = constant.storageConstant.TOKEN const USER_INFO_KEY = constant.storageConstant.USERINFO const SKIP_AUTH_URLS = ["/thirdparty/thirdPartyOAth2", "/sys/auth/refresh-token", "/auth/oauth2/token"] -// 是否正在刷新token let isRefreshing = false -// 定义一个队列,用于存储失败的请求 +// 队列存储发送失败的请求 let failedQueue: any[] = [] // 存储刷新token的Promise let refreshTokenPromise: Promise | null = null @@ -42,7 +41,7 @@ const getAuthHeader = (tokenStorage: any) => { // 浙政钉登录 登录成功返回true,否则返回false async function handleZzdLogin(): Promise { try { - uni.showLoading({ title: "加载中...", mask: true }) + uni.showLoading({ title: "登录中...", mask: true }) const token = new URL(window.location.href).searchParams.get("uabaseToken") if (!token) { @@ -104,7 +103,7 @@ async function handleShLogin(): Promise { } // 如果是设备未验证,保存响应数据 - if (response.data === -1) { + if (response.data == -1) { uni.setStorageSync(TOKEN_KEY, { data: -1 }) } @@ -136,7 +135,7 @@ async function autoLogin(): Promise { } } -// 统一的token刷新函数 +// token刷新 async function refreshToken(): Promise { if (refreshTokenPromise) { return refreshTokenPromise @@ -154,7 +153,7 @@ async function refreshToken(): Promise { } else { // 检查是否需要设备验证 const tokenStorage = uni.getStorageSync(TOKEN_KEY) - if (tokenStorage?.data === -1) { + if (tokenStorage?.data == -1) { // 显示设备验证弹窗 await showVerifyDeviceImpModel(async () => { // 验证完成后重新登录 @@ -221,8 +220,6 @@ const http = new Request({ // 请求拦截器 http.interceptors.request.use(async (config) => { - // console.log("config", config) - const tokenStorage = uni.getStorageSync(TOKEN_KEY) const config_header: any = config.header || {} @@ -243,7 +240,7 @@ http.interceptors.request.use(async (config) => { if (authHeader) config_header.Authorization = authHeader } } else { - // token不存在,使用统一的刷新函数 + // token不存在,刷新token const newTokenStorage = await refreshToken() if (newTokenStorage) { const authHeader = getAuthHeader(newTokenStorage) @@ -258,8 +255,6 @@ http.interceptors.request.use(async (config) => { // 响应拦截器 http.interceptors.response.use( async (response) => { - // console.log("response", response) - // 账号密码登录响应结果特殊处理 if (response.config.url === "/auth/oauth2/token") { return Promise.resolve({ @@ -272,8 +267,6 @@ http.interceptors.response.use( return Promise.resolve(response.data) }, async (error) => { - // console.log("error", error) - // 处理 424 错误(token过期) if (error.statusCode === 424) { if (isDevEnv()) { @@ -284,7 +277,6 @@ http.interceptors.response.use( router.jump("/pages/test/login") } else { try { - // 使用统一的刷新函数 const newTokenStorage = await refreshToken() if (newTokenStorage) { // 重新发起失败的请求 @@ -294,7 +286,7 @@ http.interceptors.response.use( return http.request(config) } } catch (err) { - // 错误已经在refreshToken中处理 + // 错误已在refreshToken中处理 return Promise.reject(err) } }