From 5fc0cba8af1a9e9b1cc41fa65c8a4db89e82ee3e Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期五, 08 八月 2025 13:22:10 +0800 Subject: [PATCH] fix: 任务发布 --- apps/cMiniApp/src/utils/request/index.ts | 78 +++++++++++++++------------------------ 1 files changed, 30 insertions(+), 48 deletions(-) diff --git a/apps/cMiniApp/src/utils/request/index.ts b/apps/cMiniApp/src/utils/request/index.ts index 326b6a5..6f6fa4b 100644 --- a/apps/cMiniApp/src/utils/request/index.ts +++ b/apps/cMiniApp/src/utils/request/index.ts @@ -3,8 +3,7 @@ import qs from 'qs'; import Taro from '@tarojs/taro'; import { getToken } from '@/utils'; -import { tokenIsExpired, Message, SensitiveManage, LocationUtils } from '@12333/utils'; -import * as accountServices from '@12333/services/api/Account'; +import { tokenIsExpired, Message, SensitiveManage } from '@12333/utils'; import { useUserStoreWithOut } from '@/stores/modules/user'; const RefreshTokenUrl = '/gettokenbyrefreshtoken'; @@ -51,9 +50,13 @@ success: boolean; data: any; /** + * http鐘舵�佸悧 + */ + code?: number; + /** * 閿欒鐮� */ - error?: number; + errorCode?: string; /** * 閿欒淇℃伅 */ @@ -112,6 +115,9 @@ const errorInfo: ErrorInfo | undefined = (error as any).info; if (errorInfo) { const { errorMessage, errorCode } = errorInfo; + if (Number(errorCode) === 401) { + handleLogout(); + } switch (errorInfo.showType) { case ErrorShowType.SILENT: // do nothing @@ -135,7 +141,7 @@ } else if ((error as AxiosError<ResponseStructure, IRequestOptions>).response) { // Axios 鐨勯敊璇� // 璇锋眰鎴愬姛鍙戝嚭涓旀湇鍔″櫒涔熷搷搴斾簡鐘舵�佺爜锛屼絾鐘舵�佷唬鐮佽秴鍑轰簡 2xx 鐨勮寖鍥� - handleAxiosResponseError(error as AxiosError<ErrorResponse, IRequestOptions>); + handleAxiosResponseError(error as AxiosError<ResponseStructure, IRequestOptions>); // Message.errorMessage(`Response status:${(error as AxiosError).response.status}`); } else if ((error as AxiosError).request) { // 璇锋眰宸茬粡鎴愬姛鍙戣捣锛屼絾娌℃湁鏀跺埌鍝嶅簲 @@ -150,7 +156,7 @@ // 閿欒鎶涘嚭 errorThrower: (res) => { - const { success, data, error: errorCode, msg, showType } = res; + const { success, data, errorCode, msg, showType } = res; if (!success) { const error: any = new Error(msg); error.name = 'BizError'; @@ -190,34 +196,9 @@ return new Promise((resolve, reject) => { if (userInfo && token && $config.withCredentials) { - if (tokenIsExpired(userInfo)) { - if (!Request.refreshTokenPending) { - Request.refreshTokenPending = true; - // token杩囨湡鍒锋柊 - useUserStoreWithOut() - .getTokenByRefreshToken({ - refreshToken: userInfo.refreshToken, - clientId: userStore.accountInfo?.client_id, - }) - .then((res) => { - $config.headers['Authorization'] = 'Bearer ' + res.accessToken; - Request.requests.forEach((cb) => cb(res.accessToken)); - Request.requests = []; - }) - .catch((err) => { - Request.requests.forEach((cb) => cb()); - Request.requests = []; - reject(err); - }) - .finally(() => { - Request.refreshTokenPending = false; - }); - } - resolve(Request.retryOriginalRequest($config)); - } else { - $config.headers['Authorization'] = 'Bearer ' + token; - resolve($config); - } + $config.headers['Authorization'] = 'Bearer ' + userInfo.accessToken; + $config.headers['X-Authorization'] = 'Bearer ' + userInfo.refreshToken; + resolve($config); } else { resolve($config); } @@ -228,14 +209,6 @@ return Promise.reject(error); }, ], - [ - (config) => { - return LocationUtils.getBaseUrlByLocation().then((res) => { - config.baseURL = res; - return config; - }); - }, - ], ], responseInterceptors: [ [ @@ -244,11 +217,20 @@ const { needNProcess, getResponse = false } = $config; + const userStore = useUserStoreWithOut(); + + if (response.headers['x-access-token']) { + const tokenInfo: API.PasswordLoginCommandCallback = { + accessToken: response.headers['access-token'], + refreshToken: response.headers['x-access-token'], + }; + userStore.setTokenAction(tokenInfo); + userStore.setUserInfoAction(tokenInfo); + } + endLoading(); - return getResponse - ? response - : SensitiveManage.filterSensitiveWord((response.data as any).result); + return getResponse ? response : SensitiveManage.filterSensitiveWord(response.data.data); }, (error) => { endLoading(); @@ -272,17 +254,17 @@ [505]: 'HTTP鐗堟湰涓嶅彈鏀寔', }; -function handleAxiosResponseError(error: AxiosError<ErrorResponse, IRequestOptions>) { +function handleAxiosResponseError(error: AxiosError<ResponseStructure, IRequestOptions>) { if (error.response.config.url.toLowerCase().includes(RefreshTokenUrl.toLowerCase())) { handleLogout(); return; } if (error && error.response) { let message = ErrorMessageMap[error.response?.status] ?? '璇锋眰閿欒'; - if (error.response.data?.error?.message) { - message = error.response.data?.error?.message; + if (error.response.data?.msg) { + message = error.response.data?.msg; } - if (error.response?.status === 401) { + if (error.response?.status === 401 || error.response.data.code === 401) { handleLogout(); } -- Gitblit v1.9.1