v2.10.0: 邮件链路 401 修复 + 一账号一 token + 重装 Worker 按钮——workerAuth 同名脚本撞车时按候选逐一验签确定归属(修 itekmedia 收不到件);凭据 token(credential id)烤进 Worker 脚本、Console 按 token 精确鉴权(脚本名仅作旧版兼容);账号详情新增「重新安装 Worker 脚本」
This commit is contained in:
+2
-2
@@ -4,8 +4,8 @@
|
||||
export interface WorkerEnv {
|
||||
/** Console 对外地址(Worker -> Console 的目标) **/
|
||||
CONSOLE_URL: string;
|
||||
/** Worker 身份(与 WorkerCredential.worker_id 一致) **/
|
||||
WORKER_ID: string;
|
||||
/** 凭据 token(= worker_credentials.id,一账号一个;Worker 以此表明身份) **/
|
||||
CREDENTIAL_TOKEN: string;
|
||||
/** Worker credential secret(HMAC 签名密钥) **/
|
||||
WORKER_SECRET: string;
|
||||
/** 测试注入:替换 fetch 实现(单测用;缺省用全局 fetch) **/
|
||||
|
||||
+2
-2
@@ -50,7 +50,7 @@ export interface HandleEmailResult {
|
||||
export async function authorizeEmail(env: WorkerEnv, recipient: string, sender: string): Promise<HandleEmailResult> {
|
||||
const doFetch = env.fetchImpl ?? fetch;
|
||||
const body = new TextEncoder().encode(JSON.stringify({ recipient, sender }));
|
||||
const headers = await signWorkerRequest(env.WORKER_SECRET, env.WORKER_ID, "POST", `${env.CONSOLE_URL}${EMAIL_AUTHORIZE_PATH}`, body);
|
||||
const headers = await signWorkerRequest(env.WORKER_SECRET, env.CREDENTIAL_TOKEN, "POST", `${env.CONSOLE_URL}${EMAIL_AUTHORIZE_PATH}`, body);
|
||||
let resp: Response;
|
||||
try {
|
||||
resp = await doFetch(`${env.CONSOLE_URL}${EMAIL_AUTHORIZE_PATH}`, {
|
||||
@@ -94,7 +94,7 @@ export async function ingestEmail(
|
||||
): Promise<HandleEmailResult> {
|
||||
const doFetch = env.fetchImpl ?? fetch;
|
||||
const bytes = raw instanceof Uint8Array ? raw : new Uint8Array(raw);
|
||||
const headers = await signWorkerRequest(env.WORKER_SECRET, env.WORKER_ID, "POST", `${env.CONSOLE_URL}${EMAIL_INGEST_PATH}`, bytes);
|
||||
const headers = await signWorkerRequest(env.WORKER_SECRET, env.CREDENTIAL_TOKEN, "POST", `${env.CONSOLE_URL}${EMAIL_INGEST_PATH}`, bytes);
|
||||
let resp: Response;
|
||||
try {
|
||||
resp = await doFetch(`${env.CONSOLE_URL}${EMAIL_INGEST_PATH}`, {
|
||||
|
||||
+4
-4
@@ -11,12 +11,12 @@ import type { WorkerEnv } from "./env.ts";
|
||||
|
||||
const env: WorkerEnv = {
|
||||
CONSOLE_URL: process.env.CONSOLE_URL ?? "http://127.0.0.1:18787",
|
||||
WORKER_ID: process.env.WORKER_ID ?? "",
|
||||
CREDENTIAL_TOKEN: process.env.CREDENTIAL_TOKEN ?? "",
|
||||
WORKER_SECRET: process.env.WORKER_SECRET ?? "",
|
||||
};
|
||||
|
||||
if (!env.WORKER_ID || !env.WORKER_SECRET) {
|
||||
console.error("missing WORKER_ID / WORKER_SECRET env");
|
||||
if (!env.CREDENTIAL_TOKEN || !env.WORKER_SECRET) {
|
||||
console.error("missing CREDENTIAL_TOKEN / WORKER_SECRET env");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ console.log(
|
||||
lvl: "info",
|
||||
msg: "email worker started",
|
||||
port: PORT,
|
||||
worker_id: env.WORKER_ID,
|
||||
credential_token: env.CREDENTIAL_TOKEN,
|
||||
console_url: env.CONSOLE_URL,
|
||||
}),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user