إعداد تسجيل الدخول المستضاف
سجّل عنوان رابط الاستدعاء الدقيق وأصل الويب الخاص بك لتطبيق البيئة التجريبية. انسخ أصل تسجيل الدخول (https://<slug>.sandbox.auth.didit.me) من وحدة التحكم، كما هو موضح في النظرة العامة. يستخدم هذا المثال واجهات التشفير في المتصفح ويتطلب HTTPS، أو localhost في البيئة التجريبية. راجع التطوير المحلي لمعرفة ما يجب تسجيله.
يملك التطبيق القيمة state ومُتحقّق PKCE. ويملك تسجيل الدخول المستضاف شاشات كلمة المرور والبريد الإلكتروني ومفتاح المرور والهاتف وتسجيل الدخول الموحد والمصادقة متعددة العوامل المطلوبة. لا يجب أن يوجد أي مفتاح API في هذا الكود.
auth.js
signIn() من زر تسجيل الدخول لديك. في صفحة رابط الاستدعاء المسجلة، استدعِ handleCallback() مرة واحدة، واعرض حالة تحميل، واعرض خطأه إن فشل. استخدم getSession() للحصول على المستخدم الحالي، وsignOut() لتسجيل الخروج. تزيل دالة الاستدعاء الرمز من شريط العنوان قبل إرسال أي طلب.
يحتفظ هذا المثال المبسط برمز الوصول في الذاكرة، ويعيد تسجيل الدخول بعد إعادة تحميل الصفحة أو انتهاء صلاحية رمز الوصول. للجلسات الدائمة، استخدم الخادم الخلفي وملفات تعريف ارتباط آمنة، أو نفّذ تدوير رمز التحديث بشكل متسلسل. لا تضع رمز التحديث أبدًا في الروابط أو السجلات. يتحكم فحص الجلسة في الواجهة الأمامية في العرض فقط، ويجب أن يتحقق الخادم الخلفي من هوية المستدعي في كل طلب محمي.
معاينة إصدار SDK المصادقة
تعرض النواة المخطط لها@didit-protocol/auth الدوال createDiditAuth({publishableKey}) وsignIn() وhandleRedirectCallback() وgetSession() وgetToken() وonAuthStateChange وsignOut()، مع vendorData في الهوية. ومن المخطط أن تضيف إشارات الجهاز التلقائية ونقطة دخول من جهة الخادم تتضمن verifyToken().
المفتاح القابل للنشر هو pk_live_ (لتطبيق الإنتاج) أو pk_test_ (لتطبيق البيئة التجريبية)، متبوعًا بترميز base64url بدون حشو لأصل تطبيقك. ترسل الحزمة طلبات الواجهة البرمجية إلى هذا الأصل. المفتاح عام: فهو يحدد التطبيق، وليس سرًا.
رفع مستوى التحقق وإعادة المصادقة في المعاينة
stepUp({ action, amount?, currency?, redirectUri? })يستدعيPOST step-up/في تطبيقك للسؤال عما إذا كانactionيحتاج إلى التحقق من الهوية. قيمةactionهيpayoutأوbankأوcontact، ويحتاج payout إلىamount. عند انطباق إحدى قواعد رفع المستوى لديك، تنتقل الدالة إلى صفحة التحقق التي تعيدها Didit.handleStepUpCallback(url?)يعمل على الصفحة التي يعود إليها الشخص. يقرأ?step_up=<id>، ويزيله من شريط العنوان، ثم يقرأ النتيجة باستخدامGET step-up/{id}/.reauthenticate({ method? })يعيد تسجيل دخول الشخص نفسه، إما في الصفحة المستضافة (method: "redirect"، وهي الافتراضية) أو بمفتاح مرور (method: "passkey"، ولا يعمل إلا على نطاق تسجيل دخول Didit الخاص بتطبيقك). بعد الصفحة المستضافة، أكمله باستدعاءhandleRedirectCallback(). إذا أكمله شخص آخر، فإنه يُرفض بالخطأstep_up_user_mismatchوتبقى الجلسة الأصلية كما هي.
{ id, status, approved, rule, method }، حيث تكون قيمة status إحدى القيم not_required أو pending أو approved أو review أو declined أو expired. القيمة الافتراضية لـ redirectUri هي عنوان إعادة التوجيه الخاص بالعميل، ويجب أن يطابق تمامًا أحد عناوين إعادة التوجيه المسجلة في تطبيقك. عندما يكون التحقق مطلوبًا، ترفض Didit أي عنوان آخر.
قبل أن يتصرف الخادم الخلفي بناءً على رفع المستوى، يقرأ الخادم الخلفي عملية رفع المستوى مرة أخرى باستخدام GET step-up/{id}/ ورمز الوصول الخاص بالشخص، لأن النتيجة التي يبلغ عنها المتصفح قد يجري تغييرها.
قد يرد تسجيل الدخول بلا واجهة أيضًا بالقيمة protection_required عندما تضع قواعد الحماية في تطبيقك علامة عليه. عندها ينهي الشخص العملية بالرمز الذي أرسلته Didit إلى بريده الإلكتروني (protection.verify({ code })) أو بمفتاح المرور (protection.passkey())، وتسرد methods أيًا من الطريقتين يمكنه استخدامهما.
لا تثبّت نسخة مُخمَّنة، ولا تكتب كودًا يعتمد على خيارات استدعاء مُخمَّنة لردّ الاتصال. أكّد ما تصدّره الحزمة المنشورة وجهة الإصدار وإعدادات المفتاح قبل استبدال المثال المستضاف. ستعتمد طرق كلمة المرور ورمز البريد الإلكتروني والرابط السحري ومفتاح المرور والهاتف والمصادقة متعددة العوامل وتسجيل الدخول عبر الحسابات الاجتماعية ورفع المستوى وطرق الوكلاء على الواجهة البرمجية المدعومة في ذلك الإصدار.
إضافة منتجات أخرى
يتحقق الخادم الخلفي من رمز الوصول (انظر الرموز وJWKS) ويقرأ قيمةvendor_data الخاصة به. استخدم هذه القيمة نفسها بوصفها vendor_data عند إنشاء جلسة تحقق أو إصدار token للمعاملة. لا يعني نجاح تسجيل الدخول أن أيًا من المنتجين وافق على المستخدم.
قبل الإطلاق، اختبر التسجيل، وتسجيل الدخول للمستخدم العائد، والإلغاء، وعدم تطابق state، وإعادة استخدام الرمز، ونسيان كلمة المرور، والمصادقة متعددة العوامل، وانتهاء الصلاحية، وتسجيل الخروج، وذلك على تطبيق البيئة التجريبية المفعّل لديك.