feat(ops-web): enhance login preference to include saved password functionality
Frontend CI / Frontend (push) Successful in 4m3s
Frontend CI / Frontend (push) Successful in 4m3s
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<div class="options">
|
||||
<label class="remember">
|
||||
<input v-model="remember" type="checkbox" />
|
||||
记住登录状态
|
||||
记住账号和密码
|
||||
</label>
|
||||
</div>
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user