diff --git a/src/utils/auth.ts b/src/utils/auth.ts index d9e85650..45c71a06 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -1,6 +1,5 @@ import { useCache, CACHE_KEY } from '@/hooks/web/useCache' import { TokenType } from '@/api/login/types' -import { decrypt, encrypt } from '@/utils/jsencrypt' const { wsCache } = useCache() @@ -47,14 +46,19 @@ export type LoginFormType = { export const getLoginForm = () => { const loginForm: LoginFormType = wsCache.get(CACHE_KEY.LoginForm) if (loginForm) { - loginForm.password = decrypt(loginForm.password) as string + // Never restore a password from browser storage. Also sanitize legacy cache entries. + loginForm.password = '' + wsCache.set(CACHE_KEY.LoginForm, loginForm, { exp: 30 * 24 * 60 * 60 }) } return loginForm } export const setLoginForm = (loginForm: LoginFormType) => { - loginForm.password = encrypt(loginForm.password) as string - wsCache.set(CACHE_KEY.LoginForm, loginForm, { exp: 30 * 24 * 60 * 60 }) + wsCache.set( + CACHE_KEY.LoginForm, + { ...loginForm, password: '' }, + { exp: 30 * 24 * 60 * 60 } + ) } export const removeLoginForm = () => { diff --git a/src/views/Login/SocialLogin.vue b/src/views/Login/SocialLogin.vue index 202a4b9a..86020dda 100644 --- a/src/views/Login/SocialLogin.vue +++ b/src/views/Login/SocialLogin.vue @@ -58,6 +58,7 @@ label-position="top" label-width="120px" size="large" + autocomplete="off" > @@ -80,6 +81,7 @@ @@ -89,6 +91,7 @@ @@ -31,6 +32,7 @@ @@ -40,6 +42,7 @@ unref(getLoginState) === LoginStateEnum.LOGIN) +const defaultTenantName = import.meta.env.VITE_APP_DEFAULT_LOGIN_TENANT || '' const LoginRules = { tenantName: [required], @@ -171,11 +175,11 @@ const loginData = reactive({ captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, loginForm: { - tenantName: import.meta.env.VITE_APP_DEFAULT_LOGIN_TENANT || '', - username: import.meta.env.VITE_APP_DEFAULT_LOGIN_USERNAME || '', - password: import.meta.env.VITE_APP_DEFAULT_LOGIN_PASSWORD || '', + tenantName: defaultTenantName, + username: '', + password: '', captchaVerification: '', - rememberMe: true // 默认记录我。如果不需要,可手动修改 + rememberMe: false } }) @@ -213,7 +217,7 @@ const getLoginFormCache = () => { username: loginForm.username ? loginForm.username : loginData.loginForm.username, password: loginForm.password ? loginForm.password : loginData.loginForm.password, rememberMe: loginForm.rememberMe, - tenantName: loginForm.tenantName ? loginForm.tenantName : loginData.loginForm.tenantName + tenantName: defaultTenantName || loginForm.tenantName || loginData.loginForm.tenantName } } } @@ -315,7 +319,9 @@ watch( ) onMounted(() => { getLoginFormCache() - getTenantByWebsite() + if (!defaultTenantName) { + getTenantByWebsite() + } })