perf: 移除 js-cookie

This commit is contained in:
xingyu4j
2022-12-01 16:39:22 +08:00
parent 3ff8d51335
commit edcde037a9
5 changed files with 120 additions and 104 deletions

View File

@ -1,31 +1,33 @@
import Cookies from 'js-cookie'
import { useCache } from '@/hooks/web/useCache'
import { TokenType } from '@/api/login/types'
import { decrypt, encrypt } from '@/utils/jsencrypt'
const { wsCache } = useCache()
const AccessTokenKey = 'ACCESS_TOKEN'
const RefreshTokenKey = 'REFRESH_TOKEN'
// 获取token
export const getAccessToken = () => {
// 此处与TokenKey相同此写法解决初始化时Cookies中不存在TokenKey报错
return Cookies.get(AccessTokenKey) ? Cookies.get(AccessTokenKey) : Cookies.get('ACCESS_TOKEN')
return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN')
}
// 刷新token
export const getRefreshToken = () => {
return Cookies.get(RefreshTokenKey)
return wsCache.get(RefreshTokenKey)
}
// 设置token
export const setToken = (token: TokenType) => {
Cookies.set(RefreshTokenKey, token.refreshToken, token.expiresTime)
Cookies.set(AccessTokenKey, token.accessToken)
wsCache.set(RefreshTokenKey, token.refreshToken, { exp: token.expiresTime })
wsCache.set(AccessTokenKey, token.accessToken)
}
// 删除token
export const removeToken = () => {
Cookies.remove(AccessTokenKey)
Cookies.remove(RefreshTokenKey)
wsCache.delete(AccessTokenKey)
wsCache.delete(RefreshTokenKey)
}
/** 格式化tokenjwt格式 */
@ -39,40 +41,40 @@ const PasswordKey = 'PASSWORD'
const RememberMeKey = 'REMEMBER_ME'
export const getUsername = () => {
return Cookies.get(UsernameKey)
return wsCache.get(UsernameKey)
}
export const setUsername = (username: string) => {
Cookies.set(UsernameKey, username)
wsCache.set(UsernameKey, username)
}
export const removeUsername = () => {
Cookies.remove(UsernameKey)
wsCache.delete(UsernameKey)
}
export const getPassword = () => {
const password = Cookies.get(PasswordKey)
const password = wsCache.get(PasswordKey)
return password ? decrypt(password) : undefined
}
export const setPassword = (password: string) => {
Cookies.set(PasswordKey, encrypt(password))
wsCache.set(PasswordKey, encrypt(password))
}
export const removePassword = () => {
Cookies.remove(PasswordKey)
wsCache.delete(PasswordKey)
}
export const getRememberMe = () => {
return Cookies.get(RememberMeKey) === 'true'
return wsCache.get(RememberMeKey) === 'true'
}
export const setRememberMe = (rememberMe: string) => {
Cookies.set(RememberMeKey, rememberMe)
wsCache.set(RememberMeKey, rememberMe)
}
export const removeRememberMe = () => {
Cookies.remove(RememberMeKey)
wsCache.delete(RememberMeKey)
}
// ========== 租户相关 ==========
@ -81,25 +83,25 @@ const TenantIdKey = 'TENANT_ID'
const TenantNameKey = 'TENANT_NAME'
export const getTenantName = () => {
return Cookies.get(TenantNameKey)
return wsCache.get(TenantNameKey)
}
export const setTenantName = (username: string) => {
Cookies.set(TenantNameKey, username)
wsCache.set(TenantNameKey, username)
}
export const removeTenantName = () => {
Cookies.remove(TenantNameKey)
wsCache.delete(TenantNameKey)
}
export const getTenantId = () => {
return Cookies.get(TenantIdKey)
return wsCache.get(TenantIdKey)
}
export const setTenantId = (username: string) => {
Cookies.set(TenantIdKey, username)
wsCache.set(TenantIdKey, username)
}
export const removeTenantId = () => {
Cookies.remove(TenantIdKey)
wsCache.delete(TenantIdKey)
}

View File

@ -150,11 +150,11 @@ import {
ElDivider,
ElLoading
} from 'element-plus'
import Cookies from 'js-cookie'
import { useRouter } from 'vue-router'
import type { RouteLocationNormalizedLoaded } from 'vue-router'
import { useI18n } from '@/hooks/web/useI18n'
import { useIcon } from '@/hooks/web/useIcon'
import { useCache } from '@/hooks/web/useCache'
import { required } from '@/utils/formRules'
import { setToken, setTenantId } from '@/utils/auth'
import { decrypt, encrypt } from '@/utils/jsencrypt'
@ -166,6 +166,7 @@ import { LoginStateEnum, useLoginState, useFormValid } from './useLogin'
const { t } = useI18n()
const formLogin = ref()
const { wsCache } = useCache()
const { validForm } = useFormValid(formLogin)
const { setLoginState, getLoginState } = useLoginState()
const { currentRoute, push } = useRouter()
@ -194,10 +195,10 @@ const loginData = reactive({
signIn: false
},
loginForm: {
tenantName: Cookies.get('tenantName') ? Cookies.get('tenantName') : '芋道源码',
username: Cookies.get('username') ? Cookies.get('username') : 'admin',
password: Cookies.get('password')
? (decrypt(Cookies.get('password')) as unknown as string)
tenantName: wsCache.get('tenantName') ? wsCache.get('tenantName') : '芋道源码',
username: wsCache.get('username') ? wsCache.get('username') : 'admin',
password: wsCache.get('password')
? (decrypt(wsCache.get('password')) as unknown as string)
: 'admin123',
captchaVerification: '',
rememberMe: false
@ -222,12 +223,12 @@ const getTenantId = async () => {
}
// 记住我
const getCookie = () => {
const username = Cookies.get('username')
const password = Cookies.get('password')
? (decrypt(Cookies.get('password')) as unknown as string)
const username = wsCache.get('username')
const password = wsCache.get('password')
? (decrypt(wsCache.get('password')) as unknown as string)
: undefined
const rememberMe = Cookies.get('rememberMe')
const tenantName = Cookies.get('tenantName')
const rememberMe = wsCache.get('rememberMe')
const tenantName = wsCache.get('tenantName')
loginData.loginForm = {
...loginData.loginForm,
username: username ? username : loginData.loginForm.username,
@ -256,17 +257,17 @@ const handleLogin = async (params) => {
background: 'rgba(0, 0, 0, 0.7)'
})
if (loginData.loginForm.rememberMe) {
Cookies.set('username', loginData.loginForm.username, { expires: 30 })
Cookies.set('password', encrypt(loginData.loginForm.password as unknown as string), {
expires: 30
wsCache.set('username', loginData.loginForm.username, { exp: 30 * 24 * 60 * 60 })
wsCache.set('password', encrypt(loginData.loginForm.password as unknown as string), {
exp: 30
})
Cookies.set('rememberMe', loginData.loginForm.rememberMe, { expires: 30 })
Cookies.set('tenantName', loginData.loginForm.tenantName, { expires: 30 })
wsCache.set('rememberMe', loginData.loginForm.rememberMe, { exp: 30 * 24 * 60 * 60 })
wsCache.set('tenantName', loginData.loginForm.tenantName, { exp: 30 * 24 * 60 * 60 })
} else {
Cookies.remove('username')
Cookies.remove('password')
Cookies.remove('rememberMe')
Cookies.remove('tenantName')
wsCache.delete('username')
wsCache.delete('password')
wsCache.delete('rememberMe')
wsCache.delete('tenantName')
}
setToken(res)
if (!redirect.value) {