120 lines
5.1 KiB
Markdown
120 lines
5.1 KiB
Markdown
# 硬编码常量汇总
|
||
|
||
> 生成时间: 2026-04-23
|
||
> 用途: 供团队审批,确认这些硬编码值是否需要改为可配置
|
||
|
||
---
|
||
|
||
## 一、前端硬编码
|
||
|
||
### 1. API Base URL
|
||
| 文件 | 行号 | 硬编码值 | 风险等级 |
|
||
|------|------|----------|----------|
|
||
| `frontend/utils/api.js` | 4 | `http://localhost:8080` | 高 |
|
||
|
||
### 2. 性能配置
|
||
| 文件 | 行号 | 硬编码值 | 说明 |
|
||
|------|------|----------|------|
|
||
| `frontend/utils/performance-config.js:36` | 36 | `30000` | 数据过时阈值(30秒) |
|
||
| `frontend/utils/performance-config.js:41` | 41 | `3000` | 关键资源加载超时(毫秒) |
|
||
|
||
### 3. UI/动画配置
|
||
| 文件 | 行号 | 硬编码值 | 说明 |
|
||
|------|------|----------|------|
|
||
| `frontend/pages/support-activity/components/FloatingBubbles.vue:337` | 337 | `30000` | 气泡刷新间隔(30秒) |
|
||
| `frontend/pages/components/WelcomeAnimation.vue:704` | 704 | `3000` | 欢迎动画延迟(3秒) |
|
||
| `frontend/pages/components/WelcomeAnimationWebview.vue:83` | 83 | `3000` | Webview动画延迟(3秒) |
|
||
| `frontend/pages/support-activity/components/ActionBar.vue:97` | 97 | `3000` | 行动条动画延迟(3秒) |
|
||
| `frontend/pages/components/CastloveContent.vue:19` | 19 | `interval="3000"` | 轮播间隔(3秒) |
|
||
|
||
---
|
||
|
||
## 二、后端硬编码
|
||
|
||
### 1. JWT 密钥(安全风险)
|
||
| 文件 | 行号 | 硬编码值 | 风险等级 |
|
||
|------|------|----------|----------|
|
||
| `backend/pkg/jwt/jwt.go` | 18 | `your-secret-key-change-in-production` | **高** |
|
||
| `backend/gateway/config/config.go` | 83 | `topfans-secret-key-please-change-in-production` | **高** |
|
||
|
||
### 2. 展馆相关 (`galleryService/config/gallery_config.go`)
|
||
| 配置项 | 硬编码值 | 说明 |
|
||
|--------|----------|------|
|
||
| `InitialSlotCount` | **6** | 初始展位数量(3公开+3私有) |
|
||
| `GrabSlotDuration` | **14400秒(4小时)** | 抢展位后未放置的过期时间 |
|
||
| `MaxSlotCount` | **10** | 最大展位数量 |
|
||
| `UnlockLevelBySlot` | 第4-10展位需等级5-11 | 解锁展位需要的等级 |
|
||
| `UnlockValueBySlot` | 水晶100-700 | 解锁展位需要的水晶 |
|
||
|
||
### 3. 社交相关 (`socialService/config/social_config.go`)
|
||
| 配置项 | 硬编码值 | 说明 |
|
||
|--------|----------|------|
|
||
| `RejectionCooldownDays` | **7天** | 拒绝好友冷却期 |
|
||
| `RequestExpiryDays` | **30天** | 好友请求过期时间 |
|
||
| `MaxLimit` | **0(未启用)** | 好友数量上限(预留) |
|
||
|
||
### 4. 用户/身份相关
|
||
| 配置项 | 值 | 文件 |
|
||
|--------|-----|------|
|
||
| `MaxIdentities` | **2个** | `userService/service/identity_service.go:23` |
|
||
| `MaxPasswordLength` | **50** | `pkg/validator/validator.go:14` |
|
||
| `MaxNicknameLength` | **20** | `pkg/validator/validator.go:18` |
|
||
|
||
### 5. 任务相关 (`taskService/config/task_config.go`)
|
||
| 配置项 | 硬编码值 | 说明 |
|
||
|--------|----------|------|
|
||
| `ResetHour` | **5** | 每日重置小时(Asia/Shanghai) |
|
||
| `ResetMinute` | **0** | 每日重置分钟 |
|
||
| `RevenueBatchSize` | **100** | 收益自动发放批次大小 |
|
||
| `RevenueMaxRetries` | **3** | 收益自动发放最大重试次数 |
|
||
|
||
### 6. 铸造相关 (`assetService/config/asset_config.go`)
|
||
| 配置项 | 硬编码值 | 说明 |
|
||
|--------|----------|------|
|
||
| `MaxRetryCount` | **3次** | 铸造失败最大重试次数 |
|
||
| `MintSimulationDelaySeconds` | **3秒** | 模拟上链延迟 |
|
||
| `GetByOwner limit` | **1000** | 单次获取藏品上限 |
|
||
|
||
### 7. Token/认证相关
|
||
| 配置项 | 硬编码值 | 文件 |
|
||
|--------|----------|------|
|
||
| `TokenExpiration` | **7天** | `pkg/jwt/jwt.go:13` |
|
||
|
||
### 8. 预签名URL相关 (`gateway/controller/asset_controller.go`)
|
||
| 配置项 | 硬编码值 | 说明 |
|
||
|--------|----------|------|
|
||
| 默认过期时间 | **3600秒(1小时)** | 预签名URL默认 |
|
||
| 最大过期时间 | **86400秒(24小时)** | 预签名URL最大 |
|
||
| STS最大 | **3600秒(1小时)** | STS Token最大 |
|
||
| STS最小 | **900秒(15分钟)** | STS Token最小 |
|
||
|
||
### 9. 数据库/服务连接(开发环境默认值)
|
||
| 服务 | 默认值 |
|
||
|------|--------|
|
||
| DB_HOST | `localhost` |
|
||
| Dubbo服务 | `tri://127.0.0.1:20000` ~ `20007` |
|
||
|
||
---
|
||
|
||
## 三、审批选项
|
||
|
||
请确认以下处理方式:
|
||
|
||
| 类别 | 选项A(保留硬编码) | 选项B(改为环境变量) |
|
||
|------|---------------------|----------------------|
|
||
| API Base URL | 继续使用localhost开发 | 改为环境变量切换dev/prod |
|
||
| JWT 密钥 | 生产部署时手动修改 | 改为环境变量,强制必须配置 |
|
||
| 展馆规则(时间/等级/水晶) | 保留硬编码 | 改为配置文件 |
|
||
| 社交规则(冷却期/过期) | 保留硬编码 | 改为配置文件 |
|
||
| 任务配置(重置时间) | 保留硬编码 | 改为环境变量 |
|
||
| 铸造配置(重试次数) | 保留硬编码 | 改为配置文件 |
|
||
| UI配置(动画时长) | 保留硬编码 | 改为样式变量 |
|
||
|
||
---
|
||
|
||
## 四、建议
|
||
|
||
1. **高风险**: JWT密钥硬编码存在安全隐患,建议改为强制环境变量配置
|
||
2. **中风险**: API Base URL建议改为环境变量,方便切换开发/生产环境
|
||
3. **低风险**: 业务规则类硬编码(如展馆规则、社交规则)可根据团队需求决定是否配置化
|