From 720fd046a5e35292f683cbbab5a069c477acb689 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 25 Apr 2026 08:19:39 +0800 Subject: [PATCH] feat(vben5): add oauth `prompt` config --- apps/vben5/apps/app-antd/.env.development | 11 +++++++++-- apps/vben5/packages/@abp/account/src/utils/auth.ts | 1 + .../packages/effects/hooks/src/use-app-config.ts | 2 ++ apps/vben5/packages/types/global.d.ts | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/vben5/apps/app-antd/.env.development b/apps/vben5/apps/app-antd/.env.development index b638cd47c..ef5b909eb 100644 --- a/apps/vben5/apps/app-antd/.env.development +++ b/apps/vben5/apps/app-antd/.env.development @@ -16,12 +16,19 @@ VITE_DEVTOOLS=false VITE_INJECT_APP_LOADING=true # 是否仅允许OIDC登录 -VITE_GLOB_AUTH_ONLY_OIDC=false +VITE_GLOB_AUTH_ONLY_OIDC=true # 认证服务器 -VITE_GLOB_AUTH_AUTHORITY="http://localhost:44385" +VITE_GLOB_AUTH_AUTHORITY="http://localhost:30000" # 授权范围 VITE_GLOB_AUTH_AUDIENCE="openid email address phone profile offline_access lingyun-abp-application" # 客户端Id VITE_GLOB_AUTH_CLIENT_ID=vue-admin-client # 客户端密钥【生产环境请勿设置此值,建议启用仅允许OIDC登录,将使用授权码类型登录】 VITE_GLOB_AUTH_CLIENT_SECRET=1q2w3e* +# 可选值: login、consent、select_account +# 取消注释登录时在多租户选择账户 +# VITE_GLOB_AUTH_PROMPT=select_account +# 取消注释登录时强制用户在该请求上输入凭据,使单一登录无效 +# VITE_GLOB_AUTH_PROMPT=login +# 取消注释登录时始终要求用户授权 +# VITE_GLOB_AUTH_PROMPT=consent diff --git a/apps/vben5/packages/@abp/account/src/utils/auth.ts b/apps/vben5/packages/@abp/account/src/utils/auth.ts index 6ec3c7820..bc15f2775 100644 --- a/apps/vben5/packages/@abp/account/src/utils/auth.ts +++ b/apps/vben5/packages/@abp/account/src/utils/auth.ts @@ -156,6 +156,7 @@ const oidcSettings: UserManagerSettings = { silent_redirect_uri: `${window.location.origin}/silent-renew.html`, automaticSilentRenew: true, loadUserInfo: true, + prompt: auth.prompt, userStore: new WebStorageStateStore({ store: import.meta.env.DEV ? localStorage diff --git a/apps/vben5/packages/effects/hooks/src/use-app-config.ts b/apps/vben5/packages/effects/hooks/src/use-app-config.ts index ea8ca371c..e8bf66a76 100644 --- a/apps/vben5/packages/effects/hooks/src/use-app-config.ts +++ b/apps/vben5/packages/effects/hooks/src/use-app-config.ts @@ -24,6 +24,7 @@ export function useAppConfig( VITE_GLOB_AUTH_ONLY_OIDC, VITE_GLOB_AUTH_ONLY_OIDC_HINT, VITE_GLOB_AUTH_DISABLE_PKCE, + VITE_GLOB_AUTH_PROMPT, VITE_GLOB_AUTH_DINGDING_CORP_ID, VITE_GLOB_AUTH_DINGDING_CLIENT_ID, VITE_GLOB_UI_FRAMEWORK, @@ -38,6 +39,7 @@ export function useAppConfig( audience: VITE_GLOB_AUTH_AUDIENCE, onlyOidc: VITE_GLOB_AUTH_ONLY_OIDC === 'true', onlyOidcHint: VITE_GLOB_AUTH_ONLY_OIDC_HINT === 'true', + prompt: VITE_GLOB_AUTH_PROMPT, disablePKCE: VITE_GLOB_AUTH_DISABLE_PKCE === 'true', }, uiFramework: VITE_GLOB_UI_FRAMEWORK, diff --git a/apps/vben5/packages/types/global.d.ts b/apps/vben5/packages/types/global.d.ts index 8dbf3fa1a..6bf4c3b29 100644 --- a/apps/vben5/packages/types/global.d.ts +++ b/apps/vben5/packages/types/global.d.ts @@ -15,6 +15,7 @@ export interface VbenAdminProAppConfigRaw { VITE_GLOB_AUTH_AUDIENCE?: string; VITE_GLOB_AUTH_ONLY_OIDC?: string; VITE_GLOB_AUTH_ONLY_OIDC_HINT?: string; + VITE_GLOB_AUTH_PROMPT?: string; VITE_GLOB_AUTH_DISABLE_PKCE?: string; VITE_GLOB_AUTH_DINGDING_CLIENT_ID: string; VITE_GLOB_AUTH_DINGDING_CORP_ID: string; @@ -32,6 +33,7 @@ interface AuthConfig { clientSecret: string; onlyOidc?: boolean; onlyOidcHint?: boolean; + prompt?: string; disablePKCE?: boolean; }