import { IsUtil } from '.'; import { webStorage, BasicKeys } from './storageCache'; import { TOKEN_KEY } from '@dq-next/types/enums/cacheEnum'; let serverToken = 'server'; export function getToken(_TOKEN_KEY: BasicKeys = TOKEN_KEY): string { // storage中没有token,则从cookie中获取 let token: string | undefined = getAuthCache(_TOKEN_KEY); if (!token) { const tokenFromCookie = document.cookie .split(';') .find((item) => item.trim().startsWith(_TOKEN_KEY)) ?.split('=')[1]; if (tokenFromCookie) { token = tokenFromCookie; setAuthCache(_TOKEN_KEY, token); } } return token as string; } export function getAuthCache(key: BasicKeys):T { if (key === TOKEN_KEY && IsUtil.isServer) { return serverToken as T; } return webStorage.ls.get(key) as T; } export function setAuthCache(key: BasicKeys, value) { if (IsUtil.isServer) { serverToken = value; return; } return webStorage.ls.set(key, value); }