Verifikasi Signature
Validasi keaslian payload webhook dengan HMAC.
Setiap webhook menyertakan header signature HMAC-SHA256 dari raw body memakai signing secret Anda. Bandingkan dengan hash yang Anda hitung sendiri memakai perbandingan timing-safe.
typescriptimport crypto from "crypto";
function valid(raw: string, signature: string, secret: string) {
const expected = crypto.createHmac("sha256", secret).update(raw).digest("hex");
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
}