v2.10.0: 邮件链路 401 修复 + 一账号一 token + 重装 Worker 按钮——workerAuth 同名脚本撞车时按候选逐一验签确定归属(修 itekmedia 收不到件);凭据 token(credential id)烤进 Worker 脚本、Console 按 token 精确鉴权(脚本名仅作旧版兼容);账号详情新增「重新安装 Worker 脚本」
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
# Email Worker <-> Console 内部协议(docs/11 §8,协议版本 1)
|
||||
|
||||
`/internal/email/authorize` 与 `/internal/email/ingest` 都是内部 API,不能匿名访问。
|
||||
每个请求必须满足:HTTPS + Worker ID + timestamp + nonce + body SHA256 + HMAC-SHA256。
|
||||
每个请求必须满足:HTTPS + 凭据 token + timestamp + nonce + body SHA256 + HMAC-SHA256。
|
||||
|
||||
**身份 = 凭据 token(v2.10.0 起)**:`Authorization` 里放 `worker_credentials.id`(一账号一个,
|
||||
部署 Worker 时烤进脚本),Console 按它精确定位凭据与所属账号。兼容:旧版 Worker 放的是
|
||||
worker 脚本名——脚本名只在单个 Cloudflare 账号内唯一,多账号同名时 Console 会取全部同名
|
||||
凭据逐一验签确定归属(v2.9.3 引入;只取一条会让先接入账号全部 401)。
|
||||
|
||||
## 请求头
|
||||
|
||||
```text
|
||||
Authorization: WmailHub-Worker <worker_id>
|
||||
Authorization: WmailHub-Worker <credential_token>
|
||||
X-WmailHub-Timestamp: <unix_seconds>
|
||||
X-WmailHub-Nonce: <random>
|
||||
X-WmailHub-Body-SHA256: <hex>
|
||||
@@ -24,7 +29,7 @@ signature = HMAC-SHA256(worker_credential_secret, canonical)
|
||||
|
||||
## Console 必须校验
|
||||
|
||||
1. Worker ID(存在且 credential active);
|
||||
1. 凭据 token(存在且 credential active;旧脚本名按同名候选逐一验签);
|
||||
2. timestamp(默认窗口 5 分钟);
|
||||
3. nonce 不重复(唯一索引入库,主键冲突即 replay);
|
||||
4. body hash;
|
||||
|
||||
@@ -232,7 +232,7 @@ Authorization 和 Ingest 都必须是内部 API,不能匿名访问。
|
||||
|
||||
请求头:
|
||||
|
||||
Authorization: WmailHub-Worker <worker_id>
|
||||
Authorization: WmailHub-Worker <credential_token> # v2.10.0 起为凭据 id(一账号一个);旧版为脚本名
|
||||
X-WmailHub-Timestamp: <unix_seconds>
|
||||
X-WmailHub-Nonce: <random>
|
||||
X-WmailHub-Body-SHA256: <sha256>
|
||||
|
||||
Reference in New Issue
Block a user