鞍钢鲅鱼圈能源管控系统前端代码
houzhongjian
2024-12-26 cb6cd26221d8bb2c4b1dca44a87332e9fe6f56ab
提交 | 用户 | 时间
cb6cd2 1 import { useCache, CACHE_KEY } from '@/hooks/web/useCache'
H 2 import {TokenType} from '@/api/login/types'
3 import { decrypt, encrypt } from '@/utils/jsencrypt'
4
5 const { wsCache } = useCache()
6
7 const AccessTokenKey = 'ACCESS_TOKEN'
8 const RefreshTokenKey = 'REFRESH_TOKEN'
9 const TenantId = 'tenantId'
10
11 // 获取token
12 export const getAccessToken = () => {
13   // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
14   return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN')
15 }
16
17 // 刷新token
18 export const getRefreshToken = () => {
19   return wsCache.get(RefreshTokenKey)
20 }
21
22 // 设置token
23 export const setToken = (token: TokenType) => {
24   wsCache.set(RefreshTokenKey, token.refreshToken)
25   wsCache.set(AccessTokenKey, token.accessToken)
26   wsCache.set(TenantId, import.meta.env.VITE_TENANT_ID)
27 }
28
29 // 删除token
30 export const removeToken = () => {
31   wsCache.delete(AccessTokenKey)
32   wsCache.delete(RefreshTokenKey)
33 }
34
35 /** 格式化token(jwt格式) */
36 export const formatToken = (token: string): string => {
37   return 'Bearer ' + token
38 }
39 // ========== 账号相关 ==========
40
41 export type LoginFormType = {
42   username: string
43   password: string
44   rememberMe: boolean
45 }
46
47 export const getLoginForm = () => {
48   const loginForm: LoginFormType = wsCache.get(CACHE_KEY.LoginForm)
49   if (loginForm) {
50     loginForm.password = decrypt(loginForm.password) as string
51   }
52   return loginForm
53 }
54
55 export const setLoginForm = (loginForm: LoginFormType) => {
56   loginForm.password = encrypt(loginForm.password) as string
57   wsCache.set(CACHE_KEY.LoginForm, loginForm, { exp: 30 * 24 * 60 * 60 })
58 }
59
60 export const removeLoginForm = () => {
61   wsCache.delete(CACHE_KEY.LoginForm)
62 }
63
64 // ========== 租户相关 ==========
65
66 export const getTenantId = () => {
67   return wsCache.get(CACHE_KEY.TenantId)
68 }
69
70 export const setTenantId = (username: string) => {
71   wsCache.set(CACHE_KEY.TenantId, username)
72 }