support provider-accurate X webhook signatures

This commit is contained in:
Codex
2026-02-18 15:29:29 +00:00
parent f672677d4f
commit fa5fa72615
4 changed files with 93 additions and 16 deletions

View File

@@ -2,7 +2,7 @@
const test = require("node:test");
const assert = require("node:assert/strict");
const { hmacSHA256Hex, verifySignature } = require("../src/lib/signature");
const { hmacSHA256Hex, hmacSHA256Base64, verifySignature } = require("../src/lib/signature");
test("verifies valid signature", () => {
const payload = JSON.stringify({ hello: "world" });
@@ -31,3 +31,19 @@ test("rejects missing signature", () => {
assert.equal(verifySignature({ payload, secret, signature: "" }), false);
});
test("verifies valid base64 signature", () => {
const payload = JSON.stringify({ hello: "world" });
const secret = "topsecret";
const sig = hmacSHA256Base64(payload, secret);
assert.equal(
verifySignature({
payload,
secret,
signature: `sha256=${sig}`,
encoding: "base64",
}),
true,
);
});