Browse Source

feat(vben5): disabling PKCE is allowed

- add `VITE_GLOB_DISABLE_PKCE` env key
- set the `disablePKCE` value in `UserManager`
- disable hash mode routing
pull/1222/head
colin 8 months ago
parent
commit
34a6d101d3
  1. 15
      apps/vben5/apps/app-antd/.env.production
  2. 7
      apps/vben5/apps/app-antd/src/auth/authService.ts
  3. 2
      apps/vben5/packages/effects/hooks/src/use-app-config.ts
  4. 2
      apps/vben5/packages/types/global.d.ts

15
apps/vben5/apps/app-antd/.env.production

@ -10,10 +10,23 @@ VITE_COMPRESS=none
VITE_PWA=false
# vue-router 的模式
VITE_ROUTER_HISTORY=hash
# oauth2.0协议要求回调必须是完整的url
# VITE_ROUTER_HISTORY=hash
# 是否注入全局loading
VITE_INJECT_APP_LOADING=true
# 打包后是否生成dist.zip
VITE_ARCHIVER=true
# 是否仅允许OIDC登录
VITE_GLOB_ONLY_OIDC=false
# 认证服务器
VITE_GLOB_AUTHORITY="http://127.0.0.1:30001"
# 授权范围
VITE_GLOB_AUDIENCE="openid email address phone profile offline_access lingyun-abp-application"
# 客户端Id
VITE_GLOB_CLIENT_ID=vue-oauth-client

7
apps/vben5/apps/app-antd/src/auth/authService.ts

@ -2,10 +2,8 @@ import { useAppConfig } from '@vben/hooks';
import { UserManager, WebStorageStateStore } from 'oidc-client-ts';
const { authority, audience, clientId, clientSecret } = useAppConfig(
import.meta.env,
import.meta.env.PROD,
);
const { authority, audience, clientId, clientSecret, disablePKCE } =
useAppConfig(import.meta.env, import.meta.env.PROD);
const userManager = new UserManager({
authority,
@ -19,6 +17,7 @@ const userManager = new UserManager({
automaticSilentRenew: true,
loadUserInfo: true,
userStore: new WebStorageStateStore({ store: window.localStorage }),
disablePKCE,
});
export default {

2
apps/vben5/packages/effects/hooks/src/use-app-config.ts

@ -22,6 +22,7 @@ export function useAppConfig(
VITE_GLOB_CLIENT_ID,
VITE_GLOB_CLIENT_SECRET,
VITE_GLOB_ONLY_OIDC,
VITE_GLOB_DISABLE_PKCE,
VITE_GLOB_UI_FRAMEWORK,
} = config;
@ -32,6 +33,7 @@ export function useAppConfig(
clientId: VITE_GLOB_CLIENT_ID,
clientSecret: VITE_GLOB_CLIENT_SECRET,
onlyOidc: VITE_GLOB_ONLY_OIDC === 'true',
disablePKCE: VITE_GLOB_DISABLE_PKCE === 'true',
uiFramework: VITE_GLOB_UI_FRAMEWORK,
};
}

2
apps/vben5/packages/types/global.d.ts

@ -14,6 +14,7 @@ export interface VbenAdminProAppConfigRaw {
VITE_GLOB_AUTHORITY: string;
VITE_GLOB_AUDIENCE?: string;
VITE_GLOB_ONLY_OIDC?: string;
VITE_GLOB_DISABLE_PKCE?: string;
VITE_GLOB_UI_FRAMEWORK: string;
}
@ -24,6 +25,7 @@ export interface ApplicationConfig {
clientId: string;
clientSecret: string;
onlyOidc?: boolean;
disablePKCE?: boolean;
uiFramework: string;
}

Loading…
Cancel
Save