潘志宝
2024-09-18 6d9c089cebac440c78573e9fa95190ee9ead674c
提交 | 用户 | 时间
820397 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
10 // 获取token
11 export const getAccessToken = () => {
12   // 此处与TokenKey相同,此写法解决初始化时Cookies中不存在TokenKey报错
13   return wsCache.get(AccessTokenKey) ? wsCache.get(AccessTokenKey) : wsCache.get('ACCESS_TOKEN')
14 }
15
16 // 刷新token
17 export const getRefreshToken = () => {
18   return wsCache.get(RefreshTokenKey)
19 }
20
21 // 设置token
22 export const setToken = (token: TokenType) => {
23   wsCache.set(RefreshTokenKey, token.refreshToken)
24   wsCache.set(AccessTokenKey, token.accessToken)
25 }
26
27 // 删除token
28 export const removeToken = () => {
29   wsCache.delete(AccessTokenKey)
30   wsCache.delete(RefreshTokenKey)
31 }
32
33 /** 格式化token(jwt格式) */
34 export const formatToken = (token: string): string => {
35   return 'Bearer ' + token
36 }
37 // ========== 账号相关 ==========
38
39 export type LoginFormType = {
40   tenantName: string
41   username: string
42   password: string
43   rememberMe: boolean
44 }
45
46 export const getLoginForm = () => {
47   const loginForm: LoginFormType = wsCache.get(CACHE_KEY.LoginForm)
48   if (loginForm) {
49     loginForm.password = decrypt(loginForm.password) as string
50   }
51   return loginForm
52 }
53
54 export const setLoginForm = (loginForm: LoginFormType) => {
55   loginForm.password = encrypt(loginForm.password) as string
56   wsCache.set(CACHE_KEY.LoginForm, loginForm, { exp: 30 * 24 * 60 * 60 })
57 }
58
59 export const removeLoginForm = () => {
60   wsCache.delete(CACHE_KEY.LoginForm)
61 }
62
63 // ========== 租户相关 ==========
64
65 export const getTenantId = () => {
66   return wsCache.get(CACHE_KEY.TenantId)
67 }
68
69 export const setTenantId = (username: string) => {
70   wsCache.set(CACHE_KEY.TenantId, username)
71 }