2025-11-10 00:59:40 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 配置浏览器本地存储的方式,可直接存储对象数组。
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
import WebStorageCache from 'web-storage-cache'
|
|
|
|
|
|
|
|
|
|
|
|
export const CACHE_KEY = {
|
|
|
|
|
|
// 用户相关
|
|
|
|
|
|
ROLE_ROUTERS: 'roleRouters',
|
|
|
|
|
|
USER: 'user',
|
|
|
|
|
|
VisitTenantId: 'visitTenantId',
|
2025-11-12 22:45:29 +08:00
|
|
|
|
// Token 相关
|
|
|
|
|
|
ACCESS_TOKEN: 'ACCESS_TOKEN',
|
|
|
|
|
|
REFRESH_TOKEN: 'REFRESH_TOKEN',
|
2025-11-10 00:59:40 +08:00
|
|
|
|
// 系统设置
|
|
|
|
|
|
IS_DARK: 'isDark',
|
|
|
|
|
|
LANG: 'lang',
|
|
|
|
|
|
THEME: 'theme',
|
|
|
|
|
|
LAYOUT: 'layout',
|
|
|
|
|
|
DICT_CACHE: 'dictCache',
|
|
|
|
|
|
// 登录表单
|
|
|
|
|
|
LoginForm: 'loginForm',
|
|
|
|
|
|
TenantId: 'tenantId'
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const useCache = (type ='localStorage') => {
|
|
|
|
|
|
const wsCache = new WebStorageCache({
|
|
|
|
|
|
storage: type
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
wsCache
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const deleteUserCache = () => {
|
|
|
|
|
|
const { wsCache } = useCache()
|
|
|
|
|
|
wsCache.delete(CACHE_KEY.USER)
|
|
|
|
|
|
wsCache.delete(CACHE_KEY.ROLE_ROUTERS)
|
|
|
|
|
|
wsCache.delete(CACHE_KEY.VisitTenantId)
|
|
|
|
|
|
// 注意,不要清理 LoginForm 登录表单
|
|
|
|
|
|
}
|
2025-11-12 22:45:29 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 删除所有 token 缓存
|
|
|
|
|
|
* 清空 wsCache 中所有可能的 token 键名变体
|
|
|
|
|
|
*/
|
|
|
|
|
|
export const deleteTokenCache = () => {
|
|
|
|
|
|
try {
|
|
|
|
|
|
const { wsCache } = useCache()
|
|
|
|
|
|
// 删除所有可能的 token 键名变体(大小写不同)
|
|
|
|
|
|
const tokenKeys = [
|
|
|
|
|
|
CACHE_KEY.ACCESS_TOKEN,
|
|
|
|
|
|
'access_token',
|
|
|
|
|
|
CACHE_KEY.REFRESH_TOKEN,
|
|
|
|
|
|
'refresh_token'
|
|
|
|
|
|
]
|
|
|
|
|
|
tokenKeys.forEach(key => {
|
|
|
|
|
|
try {
|
|
|
|
|
|
wsCache.delete(key)
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
// 忽略单个键删除失败
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
console.warn('删除 token 缓存失败:', e)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|