> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# أحداث المصادقة وwebhooks

> كيف تصل أنشطة تسجيل الدخول إلى لوحة التحكم في Didit: ملخص الدخول والسجل الزمني وعروض الاحتيال وقواعد الأحداث وwebhooks من نوع auth.*.

> [!WARNING]
>
> المصادقة ميزة جديدة. تُفعّل Didit إرسال الأحداث لتطبيقك. إجراءات القواعد التي تسجّل خروج الشخص أو تحظره غير مفعّلة بعد: القاعدة التي تستخدم هذه الإجراءات تسجّلها دون أن تطبّقها.

يرسل Didit Authentication نشاطه إلى Didit تلقائيًا. لا تحتاج إلى إرسال أحداث تسجيل الدخول بنفسك. يُسجَّل كل حدث لدى الشخص الذي يحمل `vendor_data` نفسه، إلى جانب عمليات التحقق والمعاملات الخاصة به.

لا ترسل أحداث `auth.login` الخاصة بك إلى [`/v3/events/`](https://docs.didit.me/ar/transaction-monitoring/events) عن عمليات تسجيل الدخول نفسها. ستُخزَّن الأحداث مرتين، ولن تحدّث ملخص تسجيل الدخول لدى الشخص، ولن ترسل webhooks من نوع `auth.*`.

## ما الذي يُرسل

| نشاط تسجيل الدخول | يُحفظ باسم | Webhook |
| - | - | - |
| إنشاء حساب | `auth.signup` | `auth.signup` |
| تسجيل الدخول | `auth.login` | `auth.login` |
| محاولة تسجيل دخول فاشلة | `auth.login_failed` | `auth.login_failed` |
| تسجيل الخروج، أو إلغاء جلسة | `auth.logout` | لا يوجد |
| نسيان كلمة المرور | `auth.password_forgot` | `auth.password_reset_requested` |
| إعادة تعيين كلمة المرور | `auth.password_reset` | `auth.password_reset_completed` |
| تغيير كلمة المرور | `security.password_changed` | لا يوجد |
| إضافة أداة المصادقة أو تغييرها | `security.mfa_changed` | `auth.mfa_changed` |
| تسجيل الدخول من جهاز جديد | `security.device_changed` | `auth.new_device` |
| قفل الحساب أو حظره | `security.account_locked` | `auth.account_locked` |
| الموافقة على وصول الوكيل أو سحبها | `security.agent_access_approved`، `security.agent_access_revoked` | لا يوجد |

تُحفظ قرارات [حماية من الروبوتات](https://docs.didit.me/ar/authentication/bot-protection.md) (`attempt_challenged` و`attempt_blocked` وغيرها) أيضًا كأحداث `auth.*`، فتظهر في الخط الزمني.

الجهاز الجديد هو جهاز لا يطابق معرّف جهاز ولا بصمة سبق أن سجّل الشخص الدخول منهما.

تحمل كل حدث ما يلي:

* طريقة تسجيل الدخول `method` (مثل `password` أو `passkey`)، و`reason` لحالات الفشل والقفل،
* عنوان IP، وسياق الجهاز: معرّف جهاز ثابت، وبصمة، ووكيل المستخدم، ودرجة بوت عندما يرسلها العميل،
* معرّف الجلسة.

لا يحمل تسجيل الدخول الفاشل بمعرّف غير معروف أو غير مثبت أي `vendor_data`. لا يتلقى Didit المعرّف نفسه أبدًا، بل تجزئة مفتاحية له فقط. هذه المحاولات لا تُربط بأي شخص أبدًا، لكن طرق عرض الاحتيال أدناه لا تزال تحتسبها لكل حساب.

## أين تراها

### ملف الشخص

يحصل كل شخص على ملخص لتسجيل الدخول، يظهر في قائمة **الأشخاص** وفي ملفه الشخصي، ويُعاد في [`/v3/users/`](https://docs.didit.me/ar/management-api/users/list) باسم `authentication`:

```json theme={null}
{
  "authentication": {
    "status": "ACTIVE",
    "methods": ["password", "passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* تكون `status` إحدى القيم `ACTIVE` أو `LOCKED` (مقفل بموجب سياسة أمنية) أو `BLOCKED` (محظور من فريقك).
* تكون `authentication` قيمتها `null` للشخص الذي ليس لديه هوية تسجيل دخول.
* يمكنك تصفية **الأشخاص** حسب حالة تسجيل الدخول، وطريقة تسجيل الدخول (بما في ذلك «لا شيء»)، وMFA.

### الأحداث والخط الزمني

تظهر أحداث تسجيل الدخول في صفحة **الأحداث** في الكونسول، وفي تبويب **الأحداث** لدى كل شخص. قراءتها تتطلب الإذن `list:transactions` أو `read:authentication`. عند فتح حدث تسجيل دخول يظهر الجهاز والشبكة، وأي سبب للحماية (مثل `bots` أو `stuffing` أو `brute` أو `vpn` أو `travel` أو `attack_mode`)، والقواعد التي طابقها.

### عروض الاحتيال

تتضمن صفحة **الأحداث** عروضًا جاهزة تجمع عمليات تسجيل الدخول مع بقية نشاط الشخص:

| العرض | ما الذي يكتشفه |
| - | - |
| جهاز واحد، عدة أشخاص | 3 أشخاص أو أكثر على بصمة جهاز واحدة خلال 7 أيام. |
| ارتفاع في محاولات تسجيل الدخول الفاشلة | عنوان IP عام واحد فيه 10 محاولات فاشلة أو أكثر ضد 3 حسابات أو أكثر (24 ساعة افتراضيًا)، مع عرض أكثر 30 دقيقة نشاطًا فيه. |
| جهاز جديد، ثم سحب | تسجيل دخول من جهاز لم يُرصد منذ 90 يومًا، ثم سحب أو معاملة صادرة خلال 15 دقيقة. |
| تغيير كلمة المرور، ثم معاملة | معاملة صادرة خلال 30 دقيقة من تغيير كلمة المرور. |
| جلسات كثيرة من عنوان IP واحد | 3 جلسات تحقق أو أكثر لـ 3 أشخاص أو أكثر خلال 48 ساعة. |

ترجع طرق العرض إلى 31 يومًا كحد أقصى.

## قواعد الأحداث

تمر أحداث تسجيل الدخول عبر [قواعد الأحداث](https://docs.didit.me/ar/transaction-monitoring/event-rules.md) نفسها التي تمر بها أحداثك الأخرى. تتضمن حزمة **احتيال المصادقة** أربعة إعدادات مسبقة:

| الإعداد المسبق | يطابق | الإجراءات |
| - | - | - |
| الاستيلاء على الحساب | تغيير كلمة المرور أو MFA بعد 3 محاولات تسجيل دخول فاشلة أو أكثر، وجهاز جديد خلال ساعة واحدة. | رفض (درجة 90)، ووسم، وتسجيل خروج، وحظر |
| حشو بيانات الاعتماد | تسجيل دخول ناجح من عنوان IP فيه 10 محاولات فاشلة أو أكثر على 3 حسابات أو أكثر خلال ساعة واحدة. | مراجعة (درجة 60)، ووسم، وتسجيل خروج |
| جهاز جديد، ثم دفعة مالية | سحب خلال 15 دقيقة من جهاز جديد. | مراجعة (درجة 60)، ووسم، وتسجيل خروج |
| السفر المستحيل | مسافة تزيد على 500 كم بين عمليات تسجيل الدخول، بسرعة تزيد على 1,000 كم/ساعة. | مراجعة (درجة 50)، ووسم، وتسجيل خروج |

الحقول المفيدة لقواعدك الخاصة تشمل `event.category` و`event.action_type` و`event.payload.method` و`event.payload.reason` و`event.security.changed_field` و`event.device.fingerprint` و`event.device.persistent_device_id` و`event.device.bot_score` و`event.ip.is_vpn_or_tor` و`event.ip.is_data_center` و`event.ip.country` و`event.ip.travel_distance_km` و`event.ip.travel_speed_kmh`.

لدى قواعد الأحداث إجراءان فقط خاصان بأحداث تسجيل الدخول: **تسجيل خروج الشخص من كل جلسة** و**حظر الشخص من تسجيل الدخول**. هذان الإجراءان غير مفعّلين بعد. إلى أن يتم ذلك، تسجّل القاعدة هذين الإجراءين بالحالة `DISABLED` ولا تطبّقهما. الإجراءات الأخرى (الدرجة، والحالة، والوسوم، والملاحظات، والقوائم، والحالات) تعمل كالمعتاد.

## webhook

اشترك [وجهة webhook](https://docs.didit.me/ar/integration/webhooks.md) في أنواع `auth.*` التي تحتاجها. لا تتلقى هذه الأنواع إلا الوجهات المشتركة فيها. استخدم **تجربة webhook** في الكونسول لإرسال عينة من كل نوع.

```json auth.new_device theme={null}
{
  "webhook_type": "auth.new_device",
  "event_id": "0b6f2a71-3c4d-4e5f-8a9b-0c1d2e3f4a5b",
  "application_id": "11111111-2222-3333-4444-555555555555",
  "environment": "live",
  "timestamp": 1760433164,
  "created_at": 1760433164,
  "vendor_user_id": "8f0c3a52-4b7e-4a51-9a56-1f2d3c4b5a69",
  "vendor_data": "user-1234",
  "auth_event": {
    "event_id": "auth:3d0f1c2e-7a8b-4c5d-9e0f-1a2b3c4d5e6f",
    "event_uuid": "5b6c7d8e-9f01-4a2b-8c3d-4e5f60718293",
    "type": "security.device_changed",
    "method": "passkey",
    "reason": null,
    "occurred_at": "2026-10-14T09:12:44+00:00",
    "ip_address": "203.0.113.10",
    "device": {
      "fingerprint": "fp_7f3a",
      "label": "Chrome on Android",
      "persistent_device_id": "dev_4c21"
    }
  },
  "authentication": {
    "status": "ACTIVE",
    "methods": ["passkey"],
    "mfa_enabled": true,
    "last_sign_in_at": "2026-10-14T09:12:44Z"
  }
}
```

* أزِل التكرار باستخدام `auth_event.event_id`، وهو المعرّف الخاص بحدث تسجيل الدخول نفسه: يبقى كما هو في كل إرسال لذلك الحدث. يعيد `auth_event.event_uuid` قراءة الحدث المخزَّن عبر `GET /v3/events/{event_uuid}/`.
* تكون `vendor_data` و`vendor_user_id` و`authentication` قيمتها `null` لأي محاولة لا تُسمّي شخصًا معروفًا.
* تحقّق من التوقيع كما في أي webhook من Didit (انظر [webhooks](https://docs.didit.me/ar/integration/webhooks.md)).

## الفوترة

لا تُحتسب أحداث المصادقة بحسب كل حدث. تُحتسب تكلفة المصادقة حسب المستخدم النشط شهرياً.

## الأحداث التي يملكها تطبيقك

بالنسبة للإجراءات التي تحدث داخل منتجك، مثل تغيير الملف الشخصي أو طلب صرف المدفوعات، أرسل الأحداث بنفسك من الخادم الخاص بك (`POST /v3/events/` مع `x-api-key`) أو من الجهاز باستخدام token مراقبة مقيّد بنطاق محدد. راجع [الأحداث](https://docs.didit.me/ar/transaction-monitoring/events.md) و[إرسال الأحداث عبر SDK](https://docs.didit.me/ar/transaction-monitoring/sdk-event-submission.md). استخدم `vendor_data` الخاص بالمستخدم من token الوصول الخاص به.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.