Skip to content

Commit cabc5e7

Browse files
committed
docs: append Lagrange V2 style sign API
1 parent 1dcbcc6 commit cabc5e7

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

‎acidify-docs/content/docs/yogurt/signing.mdx‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,65 @@ Content-Type: application/json
7676
}
7777
```
7878

79+
## PC 签名(Lagrange V2)
80+
81+
此节介绍的是 Lagrange V2 签名 API 规范。在使用此种签名 API 时,请将配置文件中的 `protocol.pcLagrangeSignToken` 设为签名服务提供的 Token,并将 `protocol.uin` 设为实际登录的 QQ 号。`protocol.os` 必须为 `Windows`、`Mac` 或 `Linux`,`protocol.password` 可以留空。
82+
83+
此种签名 API 不支持使用 `protocol.version = "fetched"`,必须指定具体的协议版本号,或者使用 `custom` 并提供 `app-info.json` 文件。所用协议类型和版本需要与签名服务相匹配。
84+
85+
设配置文件中的 `protocol.signApiUrl` 为 `$BASE`,`protocol.pcLagrangeSignToken` 为 `$TOKEN`。`$BASE` 应为签名服务的基础地址,Yogurt 会自动追加 `/api/sign/sec-sign` 路径。
86+
87+
### POST `$BASE/api/sign/sec-sign`
88+
89+
提供签名功能,使用 Bearer Token 进行身份验证。
90+
91+
#### 请求示例
92+
93+
```http request
94+
POST $BASE/api/sign/sec-sign HTTP/1.1
95+
Authorization: Bearer $TOKEN
96+
Content-Type: application/json
97+
98+
{
99+
"command": "wtlogin.login",
100+
"seq": 100,
101+
"body": "0123456789abcdef",
102+
"uin": 1234567890,
103+
"guid": "0123456789abcdef0123456789abcdef",
104+
"qua": "V1_LNX_NQ_3.2.19_39038_GW_B"
105+
}
106+
```
107+
108+
其中:
109+
110+
- `command` 为待签名数据包的命令名;
111+
- `seq` 为数据包序列号;
112+
- `body` 为待签名数据包内容的 HEX 字符串;
113+
- `uin` 为配置文件中的 `protocol.uin`,是 JSON 数字;
114+
- `guid` 为当前登录设备的 GUID,以 HEX 字符串表示;
115+
- `qua` 由协议类型和所用 AppInfo 的版本生成,格式为 `V1_{平台}_NQ_{版本}_GW_B`。平台分别为 `WIN`、`MAC` 或 `LNX`,版本为 `CurrentVersion` 中的 `-` 替换为 `_` 后的字符串。
116+
117+
#### 响应示例
118+
119+
```json
120+
{
121+
"code": 0,
122+
"message": "",
123+
"value": {
124+
"sec_sign": "0123456789abcdef",
125+
"sec_token": "0123456789abcdef",
126+
"sec_extra": "0123456789abcdef"
127+
}
128+
}
129+
```
130+
131+
其中:
132+
133+
- `code` 的值为 `0` 表示成功,非 `0` 表示失败;
134+
- `message` 为错误信息,成功时可以为空字符串,也可以省略或为 `null`;
135+
- `value` 在成功时必须包含,缺失或为 `null` 时 Yogurt 也会视为签名失败;
136+
- `value` 中的 `sec_sign`、`sec_token` 和 `sec_extra` 为签名所需字段,必须是 HEX 字符串或空字符串。
137+
79138
## Android 签名
80139

81140
设配置文件中的 `protocol.signApiUrl` 为 `$BASE`。

0 commit comments

Comments
 (0)