تجاوز إلى المحتوى

تجربة مقيّدة. مرجع الواجهة مولّد من الواجهة العاملة. تعود المطابقات الناجحة بالحالة manual_review حتى يُتحقق من كشف الهجمات.

خطافات الويب

يمكن لوركاء إخطار خادمك بالأحداث. اضبط نقاط الاستقبال من لوحة التحكم وتحقق من كل توقيع.

الحدثيُرسل عند
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 عامة، ولا تتضمن الحمولات درجات أو صوراً.