Files
sionrui/frontend/utils/README.md
2025-11-12 22:45:29 +08:00

109 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 全局工具模块 (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))
}
}
```