Memverifikasi Signature Webhook
Memverifikasi Signature Webhook
Kinexa menandatangani setiap webhook agar Anda bisa mempercayai bahwa payload benar-benar dari kami.
Header Signature
Setiap permintaan webhook menyertakan:
X-Kinexa-Signature: t=1717689600,v1=5257a8...Cara Verifikasi
- Ambil webhook signing secret dari Pengaturan → Developer → Webhook
- Bentuk payload yang ditandatangani:
{timestamp}.{raw_body} - Hitung HMAC-SHA256 dengan secret Anda
- Bandingkan dengan nilai
v1menggunakan perbandingan waktu konstan
Contoh (Node.js)
import crypto from "crypto";
function verify(rawBody, header, secret) {
const [t, sig] = header.split(",").map(p => p.split("=")[1]);
const expected = crypto
.createHmac("sha256", secret)
.update(`${t}.${rawBody}`)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(expected), Buffer.from(sig));
}Tolak Event Basi
Tolak permintaan yang timestamp-nya lebih lama dari ~5 menit untuk mencegah serangan replay.
Selalu Balas 200 dengan Cepat
Konfirmasi cepat dengan HTTP 200, lalu proses secara asinkron. Kinexa mencoba ulang pengiriman yang gagal dengan backoff.