Accept spaced CoinPay signature parts (#17)

This commit is contained in:
Autowebassat-blip 2026-06-12 06:04:41 +02:00 committed by GitHub
parent d558554da3
commit 9ed98ceaf7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 1 deletions

View file

@ -409,6 +409,7 @@ describe("POST /api/webhooks/coinpay", () => {
const signature = createHmac("sha256", secret).update(`${timestamp}.${payload}`).digest("hex"); const signature = createHmac("sha256", secret).update(`${timestamp}.${payload}`).digest("hex");
expect(verifyCoinPayWebhook(payload, `t=${timestamp},v1=${signature}`, secret)).toBe(true); expect(verifyCoinPayWebhook(payload, `t=${timestamp},v1=${signature}`, secret)).toBe(true);
expect(verifyCoinPayWebhook(payload, `t=${timestamp}, v1=${signature}`, secret)).toBe(true);
const response = await coinpayWebhook( const response = await coinpayWebhook(
new NextRequest("http://localhost/api/webhooks/coinpay", { new NextRequest("http://localhost/api/webhooks/coinpay", {

View file

@ -114,7 +114,7 @@ export function verifyCoinPayWebhook(
} }
try { try {
const parts = signatureHeader.split(","); const parts = signatureHeader.split(",").map((part) => part.trim());
const timestamp = parts.find((part) => part.startsWith("t="))?.slice(2); const timestamp = parts.find((part) => part.startsWith("t="))?.slice(2);
const signature = parts.find((part) => part.startsWith("v1="))?.slice(3); const signature = parts.find((part) => part.startsWith("v1="))?.slice(3);
if (!timestamp || !signature) { if (!timestamp || !signature) {