Commit 2dd1e01183c6e2c356c8e253683f88579e2d4417
1 parent
6a9244a7
perf: 简化login代码
Showing
3 changed files
with
23 additions
and
68 deletions
yudao-ui-admin-vue3/src/hooks/web/useVxeCrudSchemas.ts
| @@ -165,7 +165,7 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { | @@ -165,7 +165,7 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => { | ||
| 165 | // 添加搜索按钮 | 165 | // 添加搜索按钮 |
| 166 | const buttons: VxeFormItemProps = { | 166 | const buttons: VxeFormItemProps = { |
| 167 | span: 24, | 167 | span: 24, |
| 168 | - align: 'center', | 168 | + align: 'right', |
| 169 | collapseNode: searchSchema.length > spanLength, | 169 | collapseNode: searchSchema.length > spanLength, |
| 170 | itemRender: { | 170 | itemRender: { |
| 171 | name: '$buttons', | 171 | name: '$buttons', |
yudao-ui-admin-vue3/src/utils/auth.ts
| @@ -36,45 +36,28 @@ export const formatToken = (token: string): string => { | @@ -36,45 +36,28 @@ export const formatToken = (token: string): string => { | ||
| 36 | } | 36 | } |
| 37 | // ========== 账号相关 ========== | 37 | // ========== 账号相关 ========== |
| 38 | 38 | ||
| 39 | -const UsernameKey = 'USERNAME' | ||
| 40 | -const PasswordKey = 'PASSWORD' | ||
| 41 | -const RememberMeKey = 'REMEMBER_ME' | 39 | +const LoginFormKey = 'LOGINFORM' |
| 42 | 40 | ||
| 43 | -export const getUsername = () => { | ||
| 44 | - return wsCache.get(UsernameKey) | 41 | +export type LoginFormType = { |
| 42 | + tenantName: string | ||
| 43 | + username: string | ||
| 44 | + password: string | ||
| 45 | + rememberMe: boolean | ||
| 45 | } | 46 | } |
| 46 | 47 | ||
| 47 | -export const setUsername = (username: string) => { | ||
| 48 | - wsCache.set(UsernameKey, username, { exp: 30 * 24 * 60 * 60 }) | 48 | +export const getLoginForm = () => { |
| 49 | + const loginForm: LoginFormType = wsCache.get(LoginFormKey) | ||
| 50 | + loginForm.password = decrypt(loginForm.password) as string | ||
| 51 | + return loginForm | ||
| 49 | } | 52 | } |
| 50 | 53 | ||
| 51 | -export const removeUsername = () => { | ||
| 52 | - wsCache.delete(UsernameKey) | 54 | +export const setLoginForm = (loginForm: LoginFormType) => { |
| 55 | + loginForm.password = encrypt(loginForm.password) as string | ||
| 56 | + wsCache.set(LoginFormKey, loginForm, { exp: 30 * 24 * 60 * 60 }) | ||
| 53 | } | 57 | } |
| 54 | 58 | ||
| 55 | -export const getPassword = () => { | ||
| 56 | - const password = wsCache.get(PasswordKey) | ||
| 57 | - return password ? decrypt(password) : undefined | ||
| 58 | -} | ||
| 59 | - | ||
| 60 | -export const setPassword = (password: string) => { | ||
| 61 | - wsCache.set(PasswordKey, encrypt(password), { exp: 30 * 24 * 60 * 60 }) | ||
| 62 | -} | ||
| 63 | - | ||
| 64 | -export const removePassword = () => { | ||
| 65 | - wsCache.delete(PasswordKey) | ||
| 66 | -} | ||
| 67 | - | ||
| 68 | -export const getRememberMe = () => { | ||
| 69 | - return wsCache.get(RememberMeKey) === true | ||
| 70 | -} | ||
| 71 | - | ||
| 72 | -export const setRememberMe = (rememberMe: boolean) => { | ||
| 73 | - wsCache.set(RememberMeKey, rememberMe, { exp: 30 * 24 * 60 * 60 }) | ||
| 74 | -} | ||
| 75 | - | ||
| 76 | -export const removeRememberMe = () => { | ||
| 77 | - wsCache.delete(RememberMeKey) | 59 | +export const removeLoginForm = () => { |
| 60 | + wsCache.delete(LoginFormKey) | ||
| 78 | } | 61 | } |
| 79 | 62 | ||
| 80 | // ========== 租户相关 ========== | 63 | // ========== 租户相关 ========== |
yudao-ui-admin-vue3/src/views/Login/components/LoginForm.vue
| @@ -148,7 +148,6 @@ import { useIcon } from '@/hooks/web/useIcon' | @@ -148,7 +148,6 @@ import { useIcon } from '@/hooks/web/useIcon' | ||
| 148 | import { useMessage } from '@/hooks/web/useMessage' | 148 | import { useMessage } from '@/hooks/web/useMessage' |
| 149 | import { required } from '@/utils/formRules' | 149 | import { required } from '@/utils/formRules' |
| 150 | import * as authUtil from '@/utils/auth' | 150 | import * as authUtil from '@/utils/auth' |
| 151 | -import { decrypt } from '@/utils/jsencrypt' | ||
| 152 | import { Verify } from '@/components/Verifition' | 151 | import { Verify } from '@/components/Verifition' |
| 153 | import { usePermissionStore } from '@/store/modules/permission' | 152 | import { usePermissionStore } from '@/store/modules/permission' |
| 154 | import * as LoginApi from '@/api/login' | 153 | import * as LoginApi from '@/api/login' |
| @@ -180,10 +179,6 @@ const loginData = reactive({ | @@ -180,10 +179,6 @@ const loginData = reactive({ | ||
| 180 | isShowPassword: false, | 179 | isShowPassword: false, |
| 181 | captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, | 180 | captchaEnable: import.meta.env.VITE_APP_CAPTCHA_ENABLE, |
| 182 | tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, | 181 | tenantEnable: import.meta.env.VITE_APP_TENANT_ENABLE, |
| 183 | - token: '', | ||
| 184 | - loading: { | ||
| 185 | - signIn: false | ||
| 186 | - }, | ||
| 187 | loginForm: { | 182 | loginForm: { |
| 188 | tenantName: '芋道源码', | 183 | tenantName: '芋道源码', |
| 189 | username: 'admin', | 184 | username: 'admin', |
| @@ -194,22 +189,10 @@ const loginData = reactive({ | @@ -194,22 +189,10 @@ const loginData = reactive({ | ||
| 194 | }) | 189 | }) |
| 195 | 190 | ||
| 196 | const socialList = [ | 191 | const socialList = [ |
| 197 | - { | ||
| 198 | - icon: 'ant-design:github-filled', | ||
| 199 | - type: 0 | ||
| 200 | - }, | ||
| 201 | - { | ||
| 202 | - icon: 'ant-design:wechat-filled', | ||
| 203 | - type: 30 | ||
| 204 | - }, | ||
| 205 | - { | ||
| 206 | - icon: 'ant-design:alipay-circle-filled', | ||
| 207 | - type: 0 | ||
| 208 | - }, | ||
| 209 | - { | ||
| 210 | - icon: 'ant-design:dingtalk-circle-filled', | ||
| 211 | - type: 20 | ||
| 212 | - } | 192 | + { icon: 'ant-design:github-filled', type: 0 }, |
| 193 | + { icon: 'ant-design:wechat-filled', type: 30 }, | ||
| 194 | + { icon: 'ant-design:alipay-circle-filled', type: 0 }, | ||
| 195 | + { icon: 'ant-design:dingtalk-circle-filled', type: 20 } | ||
| 213 | ] | 196 | ] |
| 214 | 197 | ||
| 215 | // 获取验证码 | 198 | // 获取验证码 |
| @@ -232,12 +215,7 @@ const getTenantId = async () => { | @@ -232,12 +215,7 @@ const getTenantId = async () => { | ||
| 232 | } | 215 | } |
| 233 | // 记住我 | 216 | // 记住我 |
| 234 | const getCookie = () => { | 217 | const getCookie = () => { |
| 235 | - const username = authUtil.getUsername() | ||
| 236 | - const password = authUtil.getPassword() | ||
| 237 | - ? decrypt(authUtil.getPassword() as unknown as string) | ||
| 238 | - : undefined | ||
| 239 | - const rememberMe = authUtil.getRememberMe() | ||
| 240 | - const tenantName = authUtil.getTenantName() | 218 | + const { username, password, rememberMe, tenantName } = authUtil.getLoginForm() |
| 241 | loginData.loginForm = { | 219 | loginData.loginForm = { |
| 242 | ...loginData.loginForm, | 220 | ...loginData.loginForm, |
| 243 | username: username ? username : loginData.loginForm.username, | 221 | username: username ? username : loginData.loginForm.username, |
| @@ -266,15 +244,9 @@ const handleLogin = async (params) => { | @@ -266,15 +244,9 @@ const handleLogin = async (params) => { | ||
| 266 | background: 'rgba(0, 0, 0, 0.7)' | 244 | background: 'rgba(0, 0, 0, 0.7)' |
| 267 | }) | 245 | }) |
| 268 | if (loginData.loginForm.rememberMe) { | 246 | if (loginData.loginForm.rememberMe) { |
| 269 | - authUtil.setUsername(loginData.loginForm.username) | ||
| 270 | - authUtil.setPassword(loginData.loginForm.password) | ||
| 271 | - authUtil.setRememberMe(loginData.loginForm.rememberMe) | ||
| 272 | - authUtil.setTenantName(loginData.loginForm.tenantName) | 247 | + authUtil.setLoginForm(loginData.loginForm) |
| 273 | } else { | 248 | } else { |
| 274 | - authUtil.removeUsername() | ||
| 275 | - authUtil.removePassword() | ||
| 276 | - authUtil.removeRememberMe() | ||
| 277 | - authUtil.removeTenantName() | 249 | + authUtil.removeLoginForm() |
| 278 | } | 250 | } |
| 279 | authUtil.setToken(res) | 251 | authUtil.setToken(res) |
| 280 | if (!redirect.value) { | 252 | if (!redirect.value) { |