Files
BlueRoseNote/07-Other/AI/AI Agent/WY/Website/MatrixAITA团队资产库文档.md

93 lines
4.6 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.
## 1. 概览
本项目通过模拟 **Unreal Engine Launcher** 客户端,使用 Epic Games 的 OAuth2 接口进行身份认证,从而获得调用 Epic/Fab 资产分发 API 的权限。
## 2. 登录步骤(完整流程)
### Step 1: 打开 Epic 登录页
在浏览器中打开以下 URL
```
https://www.epicgames.com/id/login?redirectUrl=https%3A%2F%2Fwww.epicgames.com%2Fid%2Fapi%2Fredirect%3FclientId%3D34a02cf8f4414e29b15921876da36f9a%26responseType%3Dcode
```
### Step 2: 登录并获取 Code
1. 使用 Epic Games 账号登录
2. 登录成功后,页面重定向到一个包含 `?code=xxx` 的页面
3. 复制该 `authorization_code`
### Step 3: 提交 Code
将获取到的 `authorization_code` 提交到系统,系统会自动完成后续 Token 换取。
### Step 4: 系统自动维护
- `access_token` — 有效期约 6-8 小时,用于调用 Epic API
- `refresh_token` — 长期有效,用于自动换取新 token
- 系统每 12 小时自动刷新,无需用户再次操作
- 用户只需完成一次登录,后续全部自动
## 3. 调用的 Epic Games API 列表
以下是系统使用你的账号 Token 所调用的全部 Epic 外部 API
| # | 用途 | 方法 | URL | 是否使用你的 Token | 说明 |
|---|------|------|-----|:------------------:|------|
| 1 | 换取/刷新 Token | POST | `https://account-public-service-prod03.ol.epicgames.com/account/api/oauth/token` | 否(用客户端凭证) | 用 authorization_code 换取 token以及定期用 refresh_token 续期 |
| 2 | 获取资产列表 | GET | `https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/public/assets/{platform}` | 是 | 读取你账号拥有的所有 UE/Fab 资产列表appName、版本号等 |
| 3 | 获取下载清单 | GET | `https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/public/assets/v2/platform/{platform}/namespace/{namespace}/catalogItem/{catalogItemId}/app/{appName}/label/{label}` | 是 | 获取某个资产的 CDN 下载地址,等同于 Launcher 点击"下载"的内部请求 |
| 4 | 获取用户库 | GET | `https://library-service.live.use1a.on.epicgames.com/library/api/public/items` | 是 | 列出你的 Fab Library 中所有已拥有的资产 |
| 5 | 获取权益列表 | GET | `https://entitlement-public-service-prod08.ol.epicgames.com/entitlement/api/account/{accountId}/entitlements` | 是 | 验证账号是否拥有特定资产的使用权 |
| 6 | CDN 文件下载 | GET | `https://cdn1.unrealengine.com/.../.manifest?...签名参数` | 否URL 自带签名) | 实际下载资产文件块,不使用你的 Token |
## 4. 权限说明
### Token 拥有的权限(只读)
| 能力 | 说明 |
|------|------|
| 读取资产列表 | 查看你购买/领取的所有 UE/Fab 资产 |
| 下载资产 | 获取下载地址 + 从 CDN 下载文件 |
| 读取权益 | 查询你是否拥有某个资产的使用权 |
| 读取用户库 | 列出 Library 中的项目 |
| 基本信息 | 获取 displayName、accountId |
### Token 不具备的权限
- ❌ 购买资产、消费余额、使用钱包
- ❌ 修改账号密码或邮箱
- ❌ 访问支付信息/信用卡/账单
- ❌ 修改任何账号设置
- ❌ 发布/上架/下架/删除资产
- ❌ 访问好友/社交/聊天功能
- ❌ 发送任何消息
- ❌ 退款/取消订单
- ❌ 代替用户登录 Epic 网站token ≠ session cookie
- ❌ 访问 Fab.com 网页端功能(那是独立系统)
## 5. 账号安全性分析
### 5.1 提供 Fab/Epic 账号的风险评估
| 风险项 | 级别 | 说明 |
|--------|------|------|
| 账号被盗 | **低** | 系统只存储 refresh_token不存储密码。即使 token 泄露,攻击者无法修改密码或邮箱 |
| 购买/消费 | **无** | Launcher 客户端凭证不具备购买权限,无法产生消费 |
| 账号信息泄露 | **低** | 仅可获取 displayName 和 accountId无法读取邮箱、支付信息、密码等 |
| 社交/隐私 | **无** | 无法访问好友列表、聊天记录、个人设置等 |
| 撤销能力 | **随时可撤销** | 用户在 Epic 网站修改密码即可使所有 refresh_token 立即失效 |
### 5.2 Token 能做什么 vs 不能做什么
#### 能做的Launcher 级别只读权限)
- ✅ 列出已购/已领取的资产
- ✅ 下载已拥有的资产文件
- ✅ 查询权益entitlements
- ✅ 获取 displayName、accountId
#### 不能做的
- ❌ 购买资产、消费余额
- ❌ 修改账号密码或邮箱
- ❌ 访问支付信息/信用卡
- ❌ 修改账号设置
- ❌ 发布/上架/下架资产
- ❌ 访问好友/社交功能
- ❌ 发送消息
- ❌ 退款/取消订单
- ❌ 代替用户登录 Epic 网站token ≠ session cookie