1.优化相关文档

2.重新设置Token验证接口
This commit is contained in:
2026-04-30 15:18:06 +08:00
parent 487016e037
commit ccdb58ea1d
5 changed files with 334 additions and 124 deletions

View File

@@ -71,15 +71,15 @@ flowchart LR
1. 用户在 playX 内打开积分商城入口iframe
2. playX 前端通过 postMessage 将 **playX 下发的 token**(及必要上下文)传给商城 H5。
3. 商城 H5 调用商城后端 **`POST /api/v1/mall/verifyToken`**,由商城向 playX 的 **Token Verification API**`playX.api.base_url` + `playX.api.token_verify_url`)发起校验。
4. **前提**:配置 **`playX.verify_token_local_only = false`**,且 **`playX.api.base_url`** 已配置为可访问的 playX 基地址。
3. 商城 H5 调用商城后端 **`POST /api/v1/mall/verifyToken`**(前端只传 `token`,由商城后端向 playX 的 **Token Verification API**`PLAYX_ANGPOW_IMPORT_BASE_URL` + `PLAYX_TOKEN_VERIFY_URL`)发起校验。
4. **前提**:配置 **`playX.verify_token_local_only = false`**,且 **`PLAYX_ANGPOW_IMPORT_BASE_URL`** 已配置为可访问的 playX 基地址。
5. playX 返回 **`user_id``username`**(及可选会话过期时间等)。
6. 商城写入 **`mall_playx_session`**`session_id` + 上述 `user_id`/`username` + 过期时间),后续 H5 可用 **`session_id`** 或 **`token`(商城临时 token见模式 B** 调用资产/领取等接口。
幂等与安全:
- H5 **不要**把 playX 的 `user_id` 当作唯一可信凭据直传下单;**以 token 换 session** 或由商城签发 token 的流程为准。
- playX 侧 Token Verification API 的鉴权/签名若有按双方约定可参考《playX-接口文档》§2.1
- playX 侧 Token Verification API 的鉴权/签名由商城后端完成(`merchant_code/request_date/request_id` + `X-Request-Signature`H5 不参与签名计算
#### 4.1.3 模式 B本地 / 无 playX 环境(商城自校验,不请求 playX
@@ -212,19 +212,29 @@ flowchart LR
### 5.2 Mall → playXToken Verification API
- **目的**:商城后端校验 token/session获取可信 `user_id``username`
- **Method/Path示例占位**`POST /api/v1/auth/verify-token`
- **Method**`POST`
- **Base URL**`PLAYX_ANGPOW_IMPORT_BASE_URL`(当前联调:`https://plx-uat2.ttwd3.com/en-my/mall`
- **Path**`/api/v1/auth/verify-token`
- **完整 URL**`{PLAYX_ANGPOW_IMPORT_BASE_URL}/api/v1/auth/verify-token`
- **签名 Header**`X-Request-Signature``Base64(HMAC-SHA1(canonical, key))`
- **签名明文 canonical**`merchant_code={merchant_code}&request_date={request_date}&request_id={request_id}&token={token}`
- **request_date 格式**Unix 时间戳字符串(秒)
请求字段说明(建议
请求字段说明(当前实现
| 字段名 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `merchant_code` | String | 是 | 商户编码,默认 `plx`。 |
| `request_date` | String | 是 | 请求时间戳(秒)。 |
| `request_id` | String | 是 | 商城系统生成的唯一请求流水号。 |
| `token``session` | String | 是 | 从带有商城的 Iframe `postMessage` 接收到的用户加密登录散列或临时会话凭证。 |
| `token` | String | 是 | 从带有商城的 Iframe `postMessage` 接收到的用户登录凭证。 |
请求示例:
```json
{
"merchant_code": "plx",
"request_date": "1700000000",
"request_id": "mall_20260319_9f1b6d",
"token": "eyJhbGciOi..."
}