خطافات الويب
يمكن لوركاء إخطار خادمك بالأحداث. اضبط نقاط الاستقبال من لوحة التحكم وتحقق من كل توقيع.
| الحدث | يُرسل عند |
|---|---|
| verification.completed | صدور قرار لعملية تحقق |
| identity.enrolled | تسجيل هوية أو إعادة تسجيلها |
| identity.deleted | حذف هوية |
| usage.threshold | تجاوز 80% أو 100% من محاولاتك |
التحقق من التوقيع
verify-webhook.ts
import { createHmac, timingSafeEqual } from "node:crypto";
export function isValid(rawBody: string, timestamp: string, header: string, secret: string) {
if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
const expected = "v1=" + createHmac("sha256", secret).update(`${timestamp}.${rawBody}`).digest("hex");
return header.split(",").some((candidate) => {
const a = Buffer.from(candidate.trim());
const b = Buffer.from(expected);
return a.length === b.length && timingSafeEqual(a, b);
});
}- الترويسات: Warka-Timestamp وWarka-Signature وWarka-Event-Id. استخدم معرف الحدث لتجاهل التكرار.
- أعد أي رمز 2xx بسرعة. تُعاد المحاولات الفاشلة بتراجع زمني حتى 8 محاولات.
- بعد تدوير السر يوقّع السران معاً لمدة 24 ساعة.
- يجب أن تكون الأهداف عناوين https عامة، ولا تتضمن الحمولات درجات أو صوراً.