You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
46 lines
1.3 KiB
import type { BasicKeys } from '@/utils/cache/persistent' |
|
import { Persistent } from '@/utils/cache/persistent' |
|
import { ACCESS_TOKEN_KEY, CacheTypeEnum, REFRESH_TOKEN_KEY, TENANT_ID_KEY } from '@/enums/cacheEnum' |
|
import projectSetting from '@/settings/projectSetting' |
|
|
|
const { permissionCacheType } = projectSetting |
|
const isLocal = permissionCacheType === CacheTypeEnum.LOCAL |
|
|
|
export function getAccessToken(): string { |
|
return getAuthCache(ACCESS_TOKEN_KEY) |
|
} |
|
|
|
export function setAccessToken(value: string) { |
|
return setAuthCache(ACCESS_TOKEN_KEY, value) |
|
} |
|
|
|
export function getRefreshToken(): string { |
|
return getAuthCache(REFRESH_TOKEN_KEY) |
|
} |
|
|
|
export function setRefreshToken(value: string) { |
|
return setAuthCache(REFRESH_TOKEN_KEY, value) |
|
} |
|
|
|
export function getTenantId() { |
|
return getAuthCache(TENANT_ID_KEY) |
|
} |
|
|
|
export function setTenantId(value) { |
|
return setAuthCache(TENANT_ID_KEY, value) |
|
} |
|
|
|
export function getAuthCache<T>(key: BasicKeys) { |
|
const fn = isLocal ? Persistent.getLocal : Persistent.getSession |
|
return fn(key) as T |
|
} |
|
|
|
export function setAuthCache(key: BasicKeys, value) { |
|
const fn = isLocal ? Persistent.setLocal : Persistent.setSession |
|
return fn(key, value, true) |
|
} |
|
|
|
export function clearAuthCache(immediate = true) { |
|
const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession |
|
return fn(immediate) |
|
}
|
|
|