chore: sync local latest state and repository cleanup

This commit is contained in:
Your Name
2026-03-23 13:02:36 +08:00
parent f1ff3d629f
commit 2ef0f17961
493 changed files with 46912 additions and 7977 deletions

View File

@@ -90,13 +90,43 @@ async function trackShare(activityId, userId) {
## 🔐 认证配置
### 认证矩阵
本系统使用两种认证方式API Key 和 Bearer TokenJWT
| 路径模式 | 认证方式 | 说明 |
|----------|----------|------|
| `/r/**` | 无需认证 | 短链接跳转 |
| `/actuator/**` | 无需认证 | Spring Boot Actuator |
| `/api/v1/callback/**` | X-API-Key | 第三方回调接口 |
| `/api/v1/share/**` | X-API-Key + Bearer Token | 分享跟踪接口 |
| `/api/v1/me/**` | Bearer Token | 用户中心接口 |
| `/api/v1/activities/**` | Bearer Token | 用户端活动接口 |
| `/api/v1/activities/admin/**` | Bearer Token + 权限校验 | 管理后台活动接口 |
| `/api/v1/rewards/admin/**` | Bearer Token + 权限校验 | 管理后台奖励接口 |
| `/api/v1/roles/**` | Bearer Token + 权限校验 | 角色管理接口 |
| `/api/v1/departments/**` | Bearer Token + 权限校验 | 部门管理接口 |
| `/api/v1/approval/**` | Bearer Token + 权限校验 | 审批中心接口 |
| `/api/v1/users/**` | Bearer Token + 权限校验 | 用户管理接口 |
| `/api/v1/permissions/**` | Bearer Token + 权限校验 | 权限管理接口 |
| `/api/v1/invites/**` | Bearer Token + 权限校验 | 邀请管理接口 |
| `/api/v1/notifications/**` | Bearer Token + 权限校验 | 通知管理接口 |
| `/api/v1/risk/**` | Bearer Token + 权限校验 | 风险管理接口 |
| `/api/v1/audit/**` | Bearer Token + 权限校验 | 审计日志接口 |
| `/api/v1/system/**` | Bearer Token + 权限校验 | 系统管理接口 |
| `/api/v1/dashboard/**` | Bearer Token + 权限校验 | 仪表盘接口 |
| `/api/v1/api-keys/**` | Bearer Token + 权限校验 | API密钥管理接口 |
### API密钥认证
所有 `/api/**` 端点都需要 `X-API-Key` 请求头:
仅第三方回调和分享跟踪接口需要 `X-API-Key` 请求头:
```http
GET /api/v1/activities/1
POST /api/v1/callback/register
X-API-Key: a1b2c3d4-e5f6-7890-1234-567890abcdef
Content-Type: application/json
{"trackingId": "track-abc123", "externalUserId": "user456", "timestamp": 1699999999999}
```
**获取API密钥**
@@ -397,10 +427,11 @@ async function registerWebhook(activityId, callbackUrl, events) {
'Authorization': `Bearer ${BEARER_TOKEN}`
},
body: JSON.stringify({
activityId,
callbackUrl,
events, // ['user.registered', 'user.invited', 'reward.granted']
secret: 'your-webhook-secret'
trackingId: 'track-abc123',
externalUserId: 'user456',
timestamp: Date.now(),
deviceFingerprint: 'fp-xxx',
ip: '192.168.1.1'
})
});
return await response.json();