feat: 功能
This commit is contained in:
108
frontend/utils/README.md
Normal file
108
frontend/utils/README.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 全局工具模块 (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))
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user