From 36d2f99fcfa1dd1f3b00dd612f3b0e4956650647 Mon Sep 17 00:00:00 2001 From: liangxu Date: Tue, 2 Jun 2026 14:59:54 +0800 Subject: [PATCH] feat(ops-web): enhance login preference to include saved password functionality --- apps/ops-web/src/lib/storage.ts | 4 +++- apps/ops-web/src/stores/auth.ts | 6 +++++- apps/ops-web/src/views/LoginView.vue | 7 +++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/apps/ops-web/src/lib/storage.ts b/apps/ops-web/src/lib/storage.ts index 7cad2d2..46d358b 100644 --- a/apps/ops-web/src/lib/storage.ts +++ b/apps/ops-web/src/lib/storage.ts @@ -19,6 +19,7 @@ export interface OpsSession { export interface LoginPreference { remember: boolean lastUsername: string + savedPassword: string } export interface StoredSession { @@ -31,7 +32,7 @@ function emptySession(): OpsSession { } function emptyPreference(): LoginPreference { - return { remember: false, lastUsername: '' } + return { remember: false, lastUsername: '', savedPassword: '' } } function hasWindow(): boolean { @@ -105,6 +106,7 @@ export function readLoginPreference(): LoginPreference { return { remember: parsed.remember === true, lastUsername: typeof parsed.lastUsername === 'string' ? parsed.lastUsername : '', + savedPassword: typeof parsed.savedPassword === 'string' ? parsed.savedPassword : '', } } catch { return emptyPreference() diff --git a/apps/ops-web/src/stores/auth.ts b/apps/ops-web/src/stores/auth.ts index 9d2dc04..29c1a3a 100644 --- a/apps/ops-web/src/stores/auth.ts +++ b/apps/ops-web/src/stores/auth.ts @@ -65,7 +65,11 @@ export const useAuthStore = defineStore('ops-auth', () => { }, payload.remember, ) - writeLoginPreference({ remember: payload.remember, lastUsername: payload.username }) + writeLoginPreference({ + remember: payload.remember, + lastUsername: payload.remember ? payload.username : '', + savedPassword: payload.remember ? payload.password : '', + }) }) .finally(() => { loginPromise = null diff --git a/apps/ops-web/src/views/LoginView.vue b/apps/ops-web/src/views/LoginView.vue index 43bc394..6f3add9 100644 --- a/apps/ops-web/src/views/LoginView.vue +++ b/apps/ops-web/src/views/LoginView.vue @@ -70,7 +70,7 @@
@@ -131,9 +131,12 @@ const formState = reactive({ onMounted(() => { const pref = readLoginPreference() remember.value = pref.remember - if (pref.lastUsername) { + if (pref.remember && pref.lastUsername) { formState.username = pref.lastUsername } + if (pref.remember && pref.savedPassword) { + formState.password = pref.savedPassword + } }) function formatLoginError(error: unknown): string {