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: {