# 硬编码常量汇总 > 生成时间: 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. **低风险**: 业务规则类硬编码(如展馆规则、社交规则)可根据团队需求决定是否配置化