Files
sionrui/frontend/utils/README.md

109 lines
2.2 KiB
Markdown
Raw Normal View History

2025-11-12 22:45:29 +08:00
# 全局工具模块 (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))
}
}
```