# 全局工具模块 (Monorepo Utils) 此目录包含可在 monorepo 各个应用中复用的全局工具函数。 ## 📁 目录结构 ``` utils/ ├── token-manager.js # Token 统一管理工具 └── README.md # 本文件 ``` ## 🚀 使用方式 ### Token 管理 (`token-manager.js`) 在应用中使用全局 token 管理工具: ```javascript // 导入 token 管理工具 import { getToken, setToken, clearAllTokens, getAuthHeader } from '@gold/utils/token-manager' // 获取 token const token = getToken() // 设置 token setToken({ accessToken: 'xxx', refreshToken: 'yyy' }) // 获取 Authorization Header const header = getAuthHeader() // Bearer xxx // 清空所有 token clearAllTokens() ``` ## 📝 API 说明 ### Token 管理函数 #### `getToken()` 获取访问令牌(按优先级读取) **返回值:** `string` - token 字符串或空字符串 #### `getAccessToken()` 获取访问令牌(别名,兼容旧代码) **返回值:** `string` - token 字符串或空字符串 #### `getRefreshToken()` 获取刷新令牌 **返回值:** `string | null` - 刷新令牌或 null #### `setToken(tokens)` 设置访问令牌和刷新令牌 **参数:** - `tokens.accessToken` (string, 可选): 访问令牌 - `tokens.refreshToken` (string, 可选): 刷新令牌 #### `clearAllTokens()` 清除所有 token(包括 dev token、access token、refresh token) #### `removeToken()` 删除 token(别名,调用 `clearAllTokens()`) #### `getAuthHeader()` 获取完整的 Authorization Header 值 **返回值:** `string` - `Bearer token` 或空字符串 #### `setDevToken(token)` 设置手动输入的 dev token(用于开发测试) **参数:** `token` (string) - dev token #### `getDevToken()` 获取手动输入的 dev token **返回值:** `string` - dev token 或空字符串 ## 🔄 Token 存储优先级 1. **手动输入的 dev token** (sessionStorage) - 最高优先级 2. **正式登录的 token** (wsCache/localStorage) 3. **环境变量 VITE_DEV_TOKEN** - 兜底 ## 📦 在 Vite 配置中使用 确保在 `vite.config.js` 中配置了 `@gold` 别名: ```javascript resolve: { alias: { '@gold': fileURLToPath(new URL('../../', import.meta.url)) } } ```