نظرة عامة
iframe من UniLink (بدون خادم خلفي)
أسرع طريقة للبدء: ما عليك سوى نسخ رابط UniLink الخاص بك ولصقه.ما تحتاجه
- سير عمل في Didit (يُنشأ في Didit Console)
- رابط UniLink الخاص بك (انقر Copy Link في سير العمل الخاص بك)
التنفيذ
⚠️ مطلوب: سمة allow إلزامية للوصول إلى الكاميرا أثناء كشف الحيوية.
أبرز المزايا
- إعداد في أقل من دقيقة: بدون خادم خلفي ولا مفاتيح API
- دون أي إعدادات: يُضبط رابط الاستدعاء في إعدادات سير العمل
- مثالي للنماذج الأولية (MVP): ابدأ فوراً
جلسة iframe عبر API (مع خادم خلفي)
للتكاملات المتقدمة التي تحتاج إلى تخصيص لكل جلسة.متى تستخدمها
- مرّر
vendor_dataأوmetadataمخصصة لكل جلسة - اضبط روابط استدعاء مختلفة لكل جلسة
- تتبّع الجلسات على الخادم قبل بدء التحقق
- اربط الجلسات بمعرّفات المستخدمين لديك
التنفيذ
الخطوة 1: أنشئ جلسة (من الخادم الخلفي) تستخدم استجابة إنشاء الجلسة حقلاً اسمهurl، استخدمه كقيمة src للـ iframe.
الاستماع للأحداث (postMessage)
ترسل صفحة التحقق الأحداث إلى النافذة الأم. تحتوي كل رسالة على هذا الغلاف:event.data.data.sessionId وليس event.data.sessionId:
didit:ready ({ sessionId })، didit:started، didit:step_started / didit:step_completed / didit:step_changed ({ step, ... })، didit:status_updated ({ status })، didit:completed ({ sessionId, status })، didit:cancelled، didit:error ({ error, step? })، didit:close_request، وdidit:layout ({ contentHeight, colorScheme, dir }، انظر أدناه). تسرد مرجع أحداث SDK لـ JavaScript أحداث التحقق المتاحة كدوال رد نداء محددة النوع. ابتداءً من الإصدار 0.5.0، يتولى SDK رسائل التخطيط داخلياً ولا يمررها إلى onEvent.
تحديد حجم iframe من didit:layout
تُخبرك صفحة التحقق بالمساحة التي تحتاجها عبر رسالة didit:layout. ترسل رسالة عند التحميل وأخرى كلما تغيّر ارتفاع المحتوى أو السمة أو اتجاه النص:
لاستقبال
didit:layout في iframe الخاص بك، أضف sdk_presentation=embedded إلى رابط التحقق الخاص به. ابتداءً من الإصدار 0.5.0، يضبط SDK لـ JavaScript هذا العرض تلقائياً. بدون معامل العرض، تستخدم الصفحة تخطيطها المستقل ولا ترسل رسائل التخطيط.colorScheme وdir لمطابقة أي عناصر تحكم ترسمها حول iframe مع سمة الصفحة واتجاه نصها.
إذا انقطع اتصال المستخدم، تعرض الصفحة شاشة “لا يوجد اتصال بالإنترنت” تُغلق نفسها تلقائياً عند عودة الاتصال. إذا اختار المستخدم Exit Verification هناك، ترسل الصفحة didit:error مع error: "network_error"، ثم didit:cancelled: أغلق iframe عند didit:cancelled.
تنفيذ النافذة المنبثقة
لتجربة نافذة منبثقة متقنة تُعرض فوق صفحتك:HTML/CSS/JS
مكوّن React
مكوّن React قابل لإعادة الاستخدام للتحقق عبر نافذة منبثقة:الاستخدام
مكوّن Vue
الإعدادات
الأذونات المطلوبة
استخدم قائمة الأذونات الكاملة هذه للالتقاط والموقع والنسخ وتوافق الوسائط:
تفوّض سمة
allow الأذونات، لكنها لا تتجاوز اختيار المستخدم، ولا ترويسة Permissions-Policy الأكثر صرامة في صفحتك المضيفة.
حجم الإطار
تتكيّف عملية التحقق مع حجم إطارها. اضبط حجم الإطار وفق النافذة التي يظهر فيها:
في النطاق المتوسط، ابدأ بحجم 500px × 700px إلى أن تصل أول رسالة
didit:layout، مع الحد الأقصى للارتفاع نفسه. يطبّق مثال didit:layout الأحجام الثلاثة، بما فيها أحجام الحاسوب والهاتف قبل وصول أي رسالة.
سياسة أمان المحتوى (CSP)
إذا كنت تستخدم CSP، فأضف Didit إلى توجيهframe-src:
التحقق عبر الأجهزة
يدعم إطار InContext التحقق عبر الأجهزة تلقائياً:- يبدأ المستخدم التحقق من الحاسوب
- إذا كانت الكاميرا غير متاحة، يُعرض رمز QR
- يمسح المستخدم رمز QR بهاتفه
- يكمل المستخدم التحقق على الهاتف
- يتحدّث إطار الحاسوب تلقائياً بالنتيجة
استكشاف الأخطاء وإصلاحها
الكاميرا لا تعمل
- تأكد من أن الإطار يتضمن قائمة الأذونات كاملة
- تحقق من أن موقعك يعمل عبر HTTPS
- تأكد من أن المستخدم منح أذونات الكاميرا لنطاقك
- جرّب طريقة إعادة التوجيه إذا فشل الوصول إلى الكاميرا داخل الإطار
الإطار لا يُحمَّل
- تحقق من مشكلات سياسة أمان المحتوى (CSP)
- أضف
https://verify.didit.meإلى توجيهframe-src - تحقق من أخطاء وحدة التحكم في المتصفح
لا تُستقبل رسالة postMessage
- تأكد من أنك تستمع إلى الأصل الصحيح (
https://verify.didit.me، أو نطاقك ذي العلامة البيضاء) - تحقق من إضافة مستمع الحدث قبل فتح الإطار
- تحقق من اسم الحدث وبنيته: الأنواع تبدأ ببادئة (
didit:completed، وليسverification_complete)، وpayload متداخل ضمنevent.data.data
مستودع الأمثلة
مستودع GitHub
اطلع على الكود المصدري والأمثلة على GitHub