/** * 配置浏览器本地存储的方式,可直接存储对象数组。 */ import WebStorageCache from 'web-storage-cache' export const CACHE_KEY = { // 用户相关 ROLE_ROUTERS: 'roleRouters', USER: 'user', VisitTenantId: 'visitTenantId', // Token 相关 ACCESS_TOKEN: 'ACCESS_TOKEN', REFRESH_TOKEN: 'REFRESH_TOKEN', // 系统设置 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 登录表单 } /** * 删除所有 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) } }