From b9b075274dfa0f6f09e3d780ccd6194819c4fdc9 Mon Sep 17 00:00:00 2001 From: colin Date: Sat, 21 Dec 2024 16:25:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(openiddict):=20=E5=A2=9E=E5=8A=A0applicati?= =?UTF-8?q?ons=E7=BC=96=E8=BE=91=E5=8A=9F=E8=83=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/vben5/apps/app-antd/vite.config.mts | 7 + .../packages/@abp/core/src/types/index.ts | 1 + .../packages/@abp/core/src/types/openid.ts | 28 ++ .../packages/@abp/openiddict/package.json | 3 +- .../@abp/openiddict/src/api/openid.ts | 13 + .../applications/ApplicationModal.vue | 446 +++++++++++++++++- .../applications/ApplicationTable.vue | 220 ++++++++- .../display-names/DisplayNameModal.vue | 81 ++++ .../display-names/DisplayNameTable.vue | 103 ++++ .../src/components/display-names/types.ts | 11 + .../components/properties/PropertyModal.vue | 66 +++ .../components/properties/PropertyTable.vue | 101 ++++ .../src/components/properties/types.ts | 11 + .../src/components/uris/UriModal.vue | 52 ++ .../src/components/uris/UriTable.vue | 106 +++++ .../openiddict/src/constants/permissions.ts | 4 +- 16 files changed, 1245 insertions(+), 8 deletions(-) create mode 100644 apps/vben5/packages/@abp/core/src/types/openid.ts create mode 100644 apps/vben5/packages/@abp/openiddict/src/api/openid.ts create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameModal.vue create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameTable.vue create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/display-names/types.ts create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyModal.vue create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyTable.vue create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/properties/types.ts create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/uris/UriModal.vue create mode 100644 apps/vben5/packages/@abp/openiddict/src/components/uris/UriTable.vue diff --git a/apps/vben5/apps/app-antd/vite.config.mts b/apps/vben5/apps/app-antd/vite.config.mts index 4ccb102a9..9ac834557 100644 --- a/apps/vben5/apps/app-antd/vite.config.mts +++ b/apps/vben5/apps/app-antd/vite.config.mts @@ -6,6 +6,13 @@ export default defineConfig(async () => { vite: { server: { proxy: { + '/.well-known': { + changeOrigin: true, + // rewrite: (path) => path.replace(/^\/api/, ''), + // mock代理目标地址 + target: 'http://127.0.0.1:30001/', + ws: true, + }, '/api': { changeOrigin: true, // rewrite: (path) => path.replace(/^\/api/, ''), diff --git a/apps/vben5/packages/@abp/core/src/types/index.ts b/apps/vben5/packages/@abp/core/src/types/index.ts index cde3fc4a5..b34d7c5f1 100644 --- a/apps/vben5/packages/@abp/core/src/types/index.ts +++ b/apps/vben5/packages/@abp/core/src/types/index.ts @@ -1,6 +1,7 @@ export * from './dto'; export * from './global'; export * from './localization'; +export * from './openid'; export * from './rules'; export * from './settings'; export * from './table'; diff --git a/apps/vben5/packages/@abp/core/src/types/openid.ts b/apps/vben5/packages/@abp/core/src/types/openid.ts new file mode 100644 index 000000000..e5bfca3f8 --- /dev/null +++ b/apps/vben5/packages/@abp/core/src/types/openid.ts @@ -0,0 +1,28 @@ +interface OpenIdConfiguration { + authorization_endpoint: string; + backchannel_logout_session_supported: boolean; + backchannel_logout_supported: boolean; + check_session_iframe: string; + claims_supported: string[]; + code_challenge_methods_supported: string[]; + device_authorization_endpoint: string; + end_session_endpoint: string; + frontchannel_logout_session_supported: boolean; + frontchannel_logout_supported: boolean; + grant_types_supported: string[]; + id_token_signing_alg_values_supported: string[]; + introspection_endpoint: string; + issuer: string; + jwks_uri: string; + request_parameter_supported: boolean; + response_modes_supported: string[]; + response_types_supported: string[]; + revocation_endpoint: string; + scopes_supported: string[]; + subject_types_supported: string[]; + token_endpoint: string; + token_endpoint_auth_methods_supported: string[]; + userinfo_endpoint: string; +} + +export type { OpenIdConfiguration }; diff --git a/apps/vben5/packages/@abp/openiddict/package.json b/apps/vben5/packages/@abp/openiddict/package.json index 2824afaf8..6b7e75727 100644 --- a/apps/vben5/packages/@abp/openiddict/package.json +++ b/apps/vben5/packages/@abp/openiddict/package.json @@ -32,6 +32,7 @@ "@vben/layouts": "workspace:*", "@vben/locales": "workspace:*", "ant-design-vue": "catalog:", - "vue": "catalog:*" + "vue": "catalog:*", + "vxe-table": "catalog:" } } diff --git a/apps/vben5/packages/@abp/openiddict/src/api/openid.ts b/apps/vben5/packages/@abp/openiddict/src/api/openid.ts new file mode 100644 index 000000000..b9eec4dc6 --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/api/openid.ts @@ -0,0 +1,13 @@ +import type { OpenIdConfiguration } from '@abp/core'; + +import { requestClient } from '@abp/request'; + +/** + * openid发现端点 + * @returns OpenId配置数据 + */ +export function discoveryApi(): Promise { + return requestClient.get( + '/.well-known/openid-configuration', + ); +} diff --git a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationModal.vue b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationModal.vue index 1017376d1..48234d459 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationModal.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationModal.vue @@ -1,7 +1,449 @@ - + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue index 1017376d1..a39cd03bd 100644 --- a/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue +++ b/apps/vben5/packages/@abp/openiddict/src/components/applications/ApplicationTable.vue @@ -1,7 +1,221 @@ - + - + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameModal.vue b/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameModal.vue new file mode 100644 index 000000000..1ad77f819 --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameModal.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameTable.vue new file mode 100644 index 000000000..2ac62bac1 --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/display-names/DisplayNameTable.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/display-names/types.ts b/apps/vben5/packages/@abp/openiddict/src/components/display-names/types.ts new file mode 100644 index 000000000..709e230cb --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/display-names/types.ts @@ -0,0 +1,11 @@ +import type { Dictionary } from '@abp/core'; + +interface DisplayNameInfo { + culture: string; + displayName: string; +} +interface DisplayNameProps { + data?: Dictionary; +} + +export type { DisplayNameInfo, DisplayNameProps }; diff --git a/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyModal.vue b/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyModal.vue new file mode 100644 index 000000000..2e58c12ee --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyModal.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyTable.vue new file mode 100644 index 000000000..cd535e0fc --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/properties/PropertyTable.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/properties/types.ts b/apps/vben5/packages/@abp/openiddict/src/components/properties/types.ts new file mode 100644 index 000000000..5ab5c256b --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/properties/types.ts @@ -0,0 +1,11 @@ +import type { Dictionary } from '@abp/core'; + +interface PropertyInfo { + key: string; + value: string; +} +interface PropertyProps { + data?: Dictionary; +} + +export type { PropertyInfo, PropertyProps }; diff --git a/apps/vben5/packages/@abp/openiddict/src/components/uris/UriModal.vue b/apps/vben5/packages/@abp/openiddict/src/components/uris/UriModal.vue new file mode 100644 index 000000000..4302457f6 --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/uris/UriModal.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/components/uris/UriTable.vue b/apps/vben5/packages/@abp/openiddict/src/components/uris/UriTable.vue new file mode 100644 index 000000000..956dea577 --- /dev/null +++ b/apps/vben5/packages/@abp/openiddict/src/components/uris/UriTable.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/apps/vben5/packages/@abp/openiddict/src/constants/permissions.ts b/apps/vben5/packages/@abp/openiddict/src/constants/permissions.ts index dddd70bbb..a62eeeebf 100644 --- a/apps/vben5/packages/@abp/openiddict/src/constants/permissions.ts +++ b/apps/vben5/packages/@abp/openiddict/src/constants/permissions.ts @@ -1,5 +1,5 @@ -/** 用户权限 */ -export const IdentityUserPermissions = { +/** 应用权限 */ +export const ApplicationsPermissions = { /** 新增 */ Create: 'AbpOpenIddict.Applications.Create', Default: 'AbpOpenIddict.Applications',