From aa27a2f7a16b65b3da26027a4a1bb4e12a2415e7 Mon Sep 17 00:00:00 2001 From: Netfan Date: Sun, 27 Apr 2025 20:59:10 +0800 Subject: [PATCH] feat: encrypt the privacy data when it is persisted (#6056) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 对私密数据持久化时执行加密 * 将锁屏密码合并到accessStore中进行加密 --- apps/web-antd/.env | 3 ++ apps/web-ele/.env | 3 ++ apps/web-naive/.env | 3 ++ packages/effects/layouts/src/basic/layout.vue | 6 ++-- .../src/widgets/lock-screen/lock-screen.vue | 8 ++--- .../widgets/user-dropdown/user-dropdown.vue | 6 ++-- packages/stores/package.json | 1 + packages/stores/src/modules/access.ts | 26 ++++++++++++++- packages/stores/src/modules/index.ts | 1 - packages/stores/src/modules/lock.test.ts | 31 ----------------- packages/stores/src/modules/lock.ts | 33 ------------------- packages/stores/src/setup.ts | 19 ++++++++++- playground/.env | 3 ++ pnpm-lock.yaml | 26 +++++++++++++++ pnpm-workspace.yaml | 1 + 15 files changed, 93 insertions(+), 77 deletions(-) delete mode 100644 packages/stores/src/modules/lock.test.ts delete mode 100644 packages/stores/src/modules/lock.ts diff --git a/apps/web-antd/.env b/apps/web-antd/.env index c14a467fb..19735f36f 100644 --- a/apps/web-antd/.env +++ b/apps/web-antd/.env @@ -3,3 +3,6 @@ VITE_APP_TITLE=Vben Admin Antd # 应用命名空间,用于缓存、store等功能的前缀,确保隔离 VITE_APP_NAMESPACE=vben-web-antd + +# 对store进行加密的密钥,在将store持久化到localStorage时会使用该密钥进行加密 +VITE_APP_STORE_SECURE_KEY=please-replace-me-with-your-own-key diff --git a/apps/web-ele/.env b/apps/web-ele/.env index 87cb3df14..bb57c8651 100644 --- a/apps/web-ele/.env +++ b/apps/web-ele/.env @@ -3,3 +3,6 @@ VITE_APP_TITLE=Vben Admin Ele # 应用命名空间,用于缓存、store等功能的前缀,确保隔离 VITE_APP_NAMESPACE=vben-web-ele + +# 对store进行加密的密钥,在将store持久化到localStorage时会使用该密钥进行加密 +VITE_APP_STORE_SECURE_KEY=please-replace-me-with-your-own-key diff --git a/apps/web-naive/.env b/apps/web-naive/.env index 350660c0e..213b52ce9 100644 --- a/apps/web-naive/.env +++ b/apps/web-naive/.env @@ -3,3 +3,6 @@ VITE_APP_TITLE=Vben Admin Naive # 应用命名空间,用于缓存、store等功能的前缀,确保隔离 VITE_APP_NAMESPACE=vben-web-naive + +# 对store进行加密的密钥,在将store持久化到localStorage时会使用该密钥进行加密 +VITE_APP_STORE_SECURE_KEY=please-replace-me-with-your-own-key diff --git a/packages/effects/layouts/src/basic/layout.vue b/packages/effects/layouts/src/basic/layout.vue index f44b74044..9ae978f4a 100644 --- a/packages/effects/layouts/src/basic/layout.vue +++ b/packages/effects/layouts/src/basic/layout.vue @@ -12,7 +12,7 @@ import { updatePreferences, usePreferences, } from '@vben/preferences'; -import { useLockStore } from '@vben/stores'; +import { useAccessStore } from '@vben/stores'; import { cloneDeep, mapTree } from '@vben/utils'; import { VbenAdminLayout } from '@vben-core/layout-ui'; @@ -49,7 +49,7 @@ const { sidebarCollapsed, theme, } = usePreferences(); -const lockStore = useLockStore(); +const accessStore = useAccessStore(); const { refresh } = useRefresh(); const sidebarTheme = computed(() => { @@ -356,7 +356,7 @@ const headerSlots = computed(() => { /> - +