From bb4bbfc3fcd4e0a2fe119eca92cd59a0238477c7 Mon Sep 17 00:00:00 2001 From: MSuMshk <2039814060@qq.com> Date: Thu, 26 Feb 2026 14:46:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=8F=8CToken?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=B7=E6=96=B0=E9=93=BE=E8=B7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/api/core/auth.ts | 8 +++++++- apps/web-antd/src/api/request.ts | 18 +++++++++++++++++- apps/web-antd/src/main.ts | 2 ++ apps/web-antd/src/preferences.ts | 2 ++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/apps/web-antd/src/api/core/auth.ts b/apps/web-antd/src/api/core/auth.ts index 707c037..72eab6f 100644 --- a/apps/web-antd/src/api/core/auth.ts +++ b/apps/web-antd/src/api/core/auth.ts @@ -1,3 +1,5 @@ +import type { RequestClientConfig } from '@vben/request'; + import { baseRequestClient, requestClient } from '#/api/request'; export namespace AuthApi { @@ -53,10 +55,14 @@ export async function loginApi(data: AuthApi.LoginParams) { /** * 刷新accessToken */ -export async function refreshTokenApi(data: AuthApi.RefreshTokenParams) { +export async function refreshTokenApi( + data: AuthApi.RefreshTokenParams, + config?: RequestClientConfig, +) { return baseRequestClient.post>( '/auth/refresh', data, + config, ); } diff --git a/apps/web-antd/src/api/request.ts b/apps/web-antd/src/api/request.ts index 59f073a..684ac0c 100644 --- a/apps/web-antd/src/api/request.ts +++ b/apps/web-antd/src/api/request.ts @@ -117,11 +117,27 @@ function createRequestClient(baseURL: string, options?: RequestClientOptions) { throw new Error('refresh token is required'); } + const headers: Record = { + 'Accept-Language': preferences.app.locale, + }; + const { tenantCode, tenantId } = resolveTenantHeaderPayload(); + if (tenantCode) { + headers[TENANT_CODE_HEADER_KEY] = tenantCode; + } else if (tenantId) { + headers[TENANT_ID_HEADER_KEY] = tenantId; + } + const resp = await refreshTokenApi({ refreshToken: currentRefreshToken, + }, { + headers, }); - const tokenData = resp?.data; + const responseBody = (resp as any)?.data ?? resp; + const tokenData = + responseBody?.accessToken || responseBody?.refreshToken + ? responseBody + : responseBody?.data; const newAccessToken = tokenData?.accessToken; const newRefreshToken = tokenData?.refreshToken ?? currentRefreshToken; diff --git a/apps/web-antd/src/main.ts b/apps/web-antd/src/main.ts index e3e00fa..f9ad9a3 100644 --- a/apps/web-antd/src/main.ts +++ b/apps/web-antd/src/main.ts @@ -28,6 +28,8 @@ async function initApplication() { app: { accessMode: 'backend', defaultHomePath: '/dashboard/console', + enableRefreshToken: true, + loginExpiredMode: 'modal', }, }); diff --git a/apps/web-antd/src/preferences.ts b/apps/web-antd/src/preferences.ts index d94cd3a..3d0892e 100644 --- a/apps/web-antd/src/preferences.ts +++ b/apps/web-antd/src/preferences.ts @@ -10,6 +10,8 @@ export const overridesPreferences = defineOverridesPreferences({ app: { accessMode: 'backend', defaultHomePath: '/dashboard/console', + enableRefreshToken: true, + loginExpiredMode: 'modal', name: import.meta.env.VITE_APP_TITLE, }, theme: {