ربط تطبيقك بمحاكي المصادقة

قبل استخدام محاكي المصادقة مع التطبيق، تأكّد من فهم سير العمل العام لمجموعة أدوات المحاكاة المحلية لمنصة Firebase وتثبيت حزمة المحاكي المحلي وضبطها ومراجعة أوامر واجهة سطر الأوامر فيها.

يفترض هذا الموضوع أنك على دراية بتطوير حلول مصادقة Firebase للإنتاج. إذا لزم الأمر، راجِع الوثائق الخاصة بمزيج من الأنظمة الأساسية وأساليب المصادقة.

ماذا يمكنني أن أفعل باستخدام محاكي المصادقة؟

يوفر محاكي المصادقة محاكاة محلية عالية الدقة لخدمات مصادقة Firebase، مما يوفر الكثير من الوظائف المتوفرة في مصادقة Firebase للإنتاج. وعند إقرانه مع أنظمة Apple الأساسية وحزم تطوير برامج Android وWeb Firebase على الويب، يتيح لك المحاكي:

  • إنشاء وتحديث وإدارة حسابات المستخدمين في وضع المحاكاة لاختبار البريد الإلكتروني/كلمة المرور، ورقم الهاتف/الرسائل القصيرة، والرسائل القصيرة SMS متعددة العوامل، ومصادقة مقدم خدمة الجهات الخارجية (مثل Google)
  • عرض وتعديل المستخدمين الذين تمت محاكاتهم
  • أنظمة مصادقة الرموز المميزة المخصصة للنماذج الأولية
  • يمكنك الاطّلاع على الرسائل ذات الصلة بالمصادقة في علامة التبويب "سجلات واجهة مستخدم المحاكي".

اختيار مشروع في Firebase

تحاكي "حزمة أدوات المحاكاة المحلية في Firebase" منتجات مشروع واحد على Firebase.

لاختيار المشروع المطلوب استخدامه، قبل بدء تشغيل أدوات المحاكاة، شغِّل واجهة سطر الأوامر firebase use في دليل العمل. أو يمكنك تمرير العلامة --project إلى كل أمر من أوامر المحاكي.

تتيح حزمة المحاكي المحلي إمكانية محاكاة مشاريع Firebase الحقيقية ومشاريع تجريبية.

نوع المشروع الميزات الاستخدام مع المحاكيات
حقيقي

مشروع Firebase الحقيقي هو مشروع أنشأته وضبطته (على الأرجح من خلال "وحدة تحكُّم Firebase").

تتضمّن المشاريع الحقيقية موارد مباشرة، مثل مثيلات قواعد البيانات أو حِزم مساحة التخزين أو الدوال أو أي مورد آخر أعددته لمشروع Firebase هذا.

عند العمل على مشاريع Firebase حقيقية، يمكنك تشغيل أدوات محاكاة لأيٍّ من المنتجات المتوافقة أو جميعها.

بالنسبة إلى أي منتجات لا تحاكيها، ستتفاعل تطبيقاتك ورمزك مع المورد المباشر (مثيل قاعدة البيانات أو حزمة التخزين أو الوظيفة أو غير ذلك).

تجريبي

لا يتضمّن مشروع Firebase التجريبي إعدادات Firebase حقيقية ولا يحتوي على موارد مباشرة. يمكن الوصول إلى هذه المشاريع عادةً من خلال الدروس التطبيقية حول الترميز أو البرامج التعليمية الأخرى.

تتضمّن أرقام تعريف المشاريع الخاصة بالمشاريع التجريبية البادئة demo-.

عند العمل مع مشاريع Firebase التجريبية، تتفاعل تطبيقاتك ورمزك مع المحاكيات فقط. وإذا حاول تطبيقك التفاعل مع مورد لا يعمل المحاكي لديه، لن ينجح هذا الرمز.

ننصحك باستخدام المشاريع التجريبية كلما أمكن ذلك. تتضمّن المزايا ما يلي:

  • تسهيل عملية الإعداد نظرًا لأنه يمكنك تشغيل أدوات المحاكاة بدون إنشاء مشروع Firebase
  • مستوى أمان أعلى، لأنّه إذا استدعت الرمز البرمجي عن طريق الخطأ موارد (إنتاج) لم تتم محاكاتها، لن تكون هناك فرصة لتغيير البيانات واستخدامها والفوترة
  • تتوفّر إمكانية الحصول على دعم أفضل بلا اتصال بالإنترنت، لعدم الحاجة إلى الاتصال بالإنترنت لتنزيل إعدادات حزمة تطوير البرامج (SDK).

استخدِم تطبيقك للتحدّث إلى المحاكي

حِزم تطوير البرامج (SDK) لنظامي التشغيل Android وiOS والويب

يمكنك إعداد الإعدادات داخل التطبيق أو صفوف الاختبار للتفاعل مع محاكي المصادقة على النحو التالي.

Kotlin+KTX
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
Swift
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)

واجهة برمجة التطبيقات Web modular API

import { getAuth, connectAuthEmulator } from "firebase/auth";

const auth = getAuth();
connectAuthEmulator(auth, "http://127.0.0.1:9099");

واجهة برمجة التطبيقات لمساحة الاسم على الويب

const auth = firebase.auth();
auth.useEmulator("http://127.0.0.1:9099");

لا حاجة إلى إجراء أيّ إعداد إضافي لوضع نموذج أوّلي واختبار التفاعلات بين المصادقة ودوال Cloud أو قواعد أمان Firebase لكلّ من Cloud Firestore أو "قاعدة البيانات في الوقت الفعلي". عندما تتم تهيئة محاكي المصادقة وتشغيل أدوات المحاكاة الأخرى، فإنهما تعملان معًا تلقائيًا.

حزم SDK للمشرف

تتصل حزم SDK لمشرفي Firebase تلقائيًا بمحاكي المصادقة عند ضبط متغير بيئة FIREBASE_AUTH_EMULATOR_HOST.

export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"

تجدر الإشارة إلى أنّ محاكي Cloud Functions يتعرّف تلقائيًا على محاكي المصادقة، لذا يمكنك تخطّي هذه الخطوة عند اختبار عمليات الدمج بين Cloud Functions ومحاكيات المصادقة. سيتم ضبط متغيّر البيئة تلقائيًا لحزمة تطوير البرامج (SDK) الخاصة بالمشرف في دوال Cloud.

عند ضبط متغيّر البيئة، تقبل حِزم تطوير البرامج (SDK) لمشرفي Firebase الرموز المميّزة غير الموقَّعة لملفات تعريف الارتباط وملفات تعريف الارتباط للجلسة الصادرة عن محاكي المصادقة (من خلال طريقتَين verifyIdToken وcreateSessionCookie على التوالي) لتسهيل التطوير والاختبار على الجهاز. يُرجى التأكُّد من عدم ضبط متغيّر البيئة في الإنتاج.

إذا كنت تريد ربط رمز حزمة تطوير البرامج (SDK) للمشرف بمحاكي مشترك يعمل في بيئة أخرى، عليك تحديد رقم تعريف المشروع نفسه الذي حدّدته باستخدام واجهة سطر الأوامر في Firebase. يمكنك تمرير رقم تعريف المشروع إلى initializeApp مباشرةً أو ضبط متغيّر بيئة GCLOUD_PROJECT.

حزمة تطوير البرامج (SDK) لمشرف Node.js
admin.initializeApp({ projectId: "your-project-id" });
متغيّر البيئة
export GCLOUD_PROJECT="your-project-id"

الرموز المميزة للهوية

لأسباب تتعلق بالأمان، يُصدِر محاكي المصادقة الرموز المميزة للمعرِّف غير الموقَّعة، والتي لا تقبلها إلا المحاكيات الأخرى في Firebase أو "SDK لمشرف Firebase" عند ضبطها. وسيتم رفض هذه الرموز المميّزة من خلال خدمات Firebase للإنتاج أو حزمة تطوير البرامج (SDK) لمشرف Firebase التي تعمل في وضع الإنتاج (على سبيل المثال، السلوك التلقائي بدون خطوات الإعداد الموضّحة أعلاه).

بدء المحاكي

يمكنك استخدام محاكي المصادقة بشكل تفاعلي عبر واجهة مستخدم مجموعة Emulator Suite، وليس بشكل تفاعلي من خلال واجهة REST المحلية. تتناول الأقسام التالية حالات الاستخدام التفاعلية وغير التفاعلية.

لبدء محاكي المصادقة وواجهة REST وواجهة مستخدم مجموعة المحاكي، نفذ ما يلي:

firebase emulators:start

بالنسبة إلى المصادقة المجهولة، يمكن لتطبيقك اتّباع منطق تسجيل الدخول للنظام الأساسي الذي تستخدمه (iOS وAndroid والويب).

بالنسبة إلى مصادقة البريد الإلكتروني/كلمة المرور، يمكنك بدء إنشاء نماذج أولية عن طريق إضافة حسابات مستخدمين إلى مُحاكي المصادقة من تطبيقك باستخدام طرق حزمة تطوير البرامج (SDK) للمصادقة أو باستخدام واجهة مستخدم مجموعة Emulator.

  1. في واجهة مستخدم مجموعة المحاكاة، انقر على علامة التبويب المصادقة.
  2. انقر على الزر إضافة مستخدم.
  3. اتّبِع معالج إنشاء حساب المستخدم، واملأ حقول مصادقة البريد الإلكتروني.

من خلال إنشاء مستخدم تجريبي، يمكن لتطبيقك تسجيل دخول المستخدم والخروج منه باستخدام منطق حزمة تطوير البرامج (SDK) لنظامك الأساسي (iOS وAndroid والويب).

ولاختبار إثبات ملكية البريد الإلكتروني أو تسجيل الدخول باستخدام مسارات رابط البريد الإلكتروني، يطبع المحاكي عنوان URL إلى الوحدة الطرفية التي تم تنفيذ firebase emulators:start فيها.

i  To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-key

الصِق الرابط في المتصفّح لمحاكاة حدث إثبات الملكية، وتحقَّق مما إذا كانت عملية إثبات الملكية قد نجحت أم لا.

{
  "authEmulator": {
    "success": "The email has been successfully verified.",
    "email": "customer@example.com"
  }
}

لاختبار عمليات إعادة ضبط كلمة المرور، يطبع المحاكي عنوان URL مشابهًا، يتضمن المعلَمة newPassword (يمكنك تغييرها حسب الحاجة)، على الوحدة الطرفية.

http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORD

الاختبار غير التفاعلي

بدلاً من استخدام واجهة مستخدم Emulator Suite أو رمز العميل لإدارة حسابات مستخدمي البريد الإلكتروني/كلمة المرور، يمكنك كتابة نصوص برمجية لإعداد الاختبار تطلب واجهات برمجة تطبيقات REST لإنشاء حسابات مستخدمين وحذفها وجلب رموز التحقق من البريد الإلكتروني خارج النطاق لتعبئة عنوان URL للتحقق من البريد الإلكتروني للمحاكي. وهذا يبقي النظام الأساسي ورمز الاختبار منفصلين ويتيح لك الاختبار بشكل غير تفاعلي.

بالنسبة لتدفقات اختبار البريد الإلكتروني وكلمة المرور غير التفاعلية، يكون التسلسل النموذجي كما يلي.

  1. إنشاء مستخدمين باستخدام نقطة نهاية signUp REST للمصادقة.
  2. يجب تسجيل دخول المستخدمين باستخدام عناوين البريد الإلكتروني وكلمات المرور لإجراء الاختبارات.
  3. إذا كان ذلك منطبقًا على اختباراتك، يمكنك استرجاع الرموز المتاحة لإثبات ملكية البريد الإلكتروني خارج النطاق من نقطة نهاية REST الخاصة بالمحاكي.
  4. مسح سجلّات المستخدمين باستخدام نقطة نهاية REST الخاصة بالمحاكي لمحو البيانات

محاكاة مصادقة الهاتف/الرسائل القصيرة

بالنسبة إلى مصادقة الهاتف، لا يتيح محاكي المصادقة ما يلي:

  • مسار اختبار reCAPTCHA واسم نقطة الوصول (APN). بعد ضبط حِزم تطوير البرامج (SDK) للعميل للتفاعل مع المحاكي، توقِف حِزم SDK هذه طرق إثبات الملكية هذه بطريقة تشبه الطرق الموضّحة في اختبار الدمج (iOS وAndroid والويب).
  • اختبِر أرقام الهواتف باستخدام رموز تم ضبطها مسبقًا في "وحدة تحكُّم Firebase".

بخلاف ذلك، من حيث رمز العميل، يتطابق مسار مصادقة الهاتف/الرسائل القصيرة مع ذلك الموضَّح في عملية الإنتاج (iOS وAndroid وweb).

باستخدام واجهة مستخدم Emulator Suite:

  1. في واجهة مستخدم مجموعة المحاكاة، انقر على علامة التبويب المصادقة.
  2. انقر على الزر إضافة مستخدم.
  3. اتبع معالج إنشاء حساب المستخدم، واملأ حقول مصادقة الهاتف.

ومع ذلك، بالنسبة إلى مسارات مصادقة الهاتف، لن يبدأ المحاكي تسليم أي رسائل نصية، نظرًا لأن الاتصال بمشغِّل شبكة الجوّال خارج نطاق النطاق وغير مناسب للاختبار المحلي. بدلاً من ذلك، يطبع المحاكي الرمز الذي كان من المفترض أن يتم إرساله عبر رسالة قصيرة SMS إلى الوحدة الطرفية نفسها التي تم تشغيل firebase emulators:start عندها، وأدخِل هذا الرمز في التطبيق لمحاكاة قيام المستخدمين بالتحقّق من رسائلهم النصية.

الاختبار غير التفاعلي

لاختبار مصادقة الهاتف غير التفاعلية، استخدم واجهة برمجة تطبيقات REST لمحاكي المصادقة لاسترداد رموز الرسائل القصيرة SMS المتاحة. لاحظ أن التعليمة البرمجية تكون مختلفة في كل مرة تبدأ فيها التدفق.

التسلسل النموذجي هو على النحو التالي.

  1. يمكنك الاتصال بمنصة signInWithPhoneNumber لبدء عملية إثبات الهوية.
  2. يمكنك استرداد رمز إثبات الملكية باستخدام نقطة نهاية REST الخاصة بالمحاكي.
  3. يمكنك الاتصال بالرقم confirmationResult.confirm(code) كالمعتاد لتقديم رمز التحقّق.

رسائل SMS متعددة العوامل

يتيح "محاكي المصادقة" إنشاء نماذج أولية لاختبار تدفقات المصادقة المتعدّدة العوامل (MFA) للرسائل القصيرة المتوفّرة في قناة الإصدار العلني على أنظمة التشغيل iOS وAndroid والويب.

عند إضافة مستخدم وهمي إلى المحاكي، يمكنك تفعيل MFA وإعداد رقم هاتف واحد أو أكثر يتم إرسال الرسائل القصيرة SMS إليه من العامل الثاني. يتم إخراج الرسائل إلى الوحدة الطرفية نفسها التي تم تشغيل firebase emulators:start فيها، وتكون متوفرة من واجهة REST.

مصادقة موفِّر الهوية التابع لجهة خارجية (idP) التي تمت محاكاتها

يتيح لك محاكي المصادقة اختبار العديد من مسارات المصادقة التابعة لجهات خارجية في تطبيقات iOS أو Android أو تطبيقات الويب بدون أي تغييرات من رمز الإنتاج. للاطّلاع على أمثلة حول مسارات المصادقة، يمكنك الرجوع إلى المستندات الخاصة بمجموعات متنوّعة من مقدّمي الخدمات والمنصات التي يمكنك استخدامها في تطبيقك.

بشكل عام، يمكنك استخدام حزمة تطوير البرامج (SDK) لمنصّة Firebase للمصادقة بإحدى الطريقتَين التاليتَين:

  • يتيح تطبيقك لحزمة تطوير البرامج (SDK) معالجة العملية بأكملها من البداية إلى النهاية، بما في ذلك جميع التفاعلات مع موفِّري موفِّر الهوية (idP) التابعين لجهات خارجية من أجل استرداد بيانات الاعتماد.
  • يسترد تطبيقك بيانات الاعتماد يدويًا من مقدّم خدمة تابع لجهة خارجية باستخدام حزمة تطوير البرامج (SDK) الخاصة بهذه الجهة ويمررها إلى حزمة تطوير البرامج للمصادقة.

راجِع رابط المستندات أعلاه وتأكَّد من أنّك على دراية بأي نوع تريد استخدامه، سواء كان من خلال حزمة تطوير البرامج (SDK) المُدارة في Firebase أو استرجاع بيانات الاعتماد اليدوي. يدعم محاكي المصادقة اختبار أي من الأسلوبين.

اختبار مسارات موفِّر الهوية (idP) المستندة إلى حزمة تطوير البرامج (SDK) لمنصّة Firebase

إذا كان تطبيقك يستخدم أيّ مسار شامل لحزمة تطوير البرامج (SDK) لمنصّة Firebase، مثل OAuthProvider لتسجيل الدخول باستخدام حساب Microsoft أو GitHub أو Yahoo، لإجراء الاختبار التفاعلي، يوفّر محاكي المصادقة إصدارًا محليًا من صفحة تسجيل الدخول ذات الصلة لمساعدتك في اختبار المصادقة من تطبيقات الويب التي تطلب طريقة signinWithPopup أو signInWithRedirect. وتظهر صفحة تسجيل الدخول المعروضة محليًا أيضًا في تطبيقات الأجهزة الجوّالة، ويتم عرضها بواسطة مكتبة WebView في النظام الأساسي.

ينشئ المحاكي حسابات مستخدم وهمية تابعة لجهة خارجية وبيانات اعتماد حسب الحاجة أثناء استمرار التدفقات.

اختبار مسارات موفِّر الهوية (idP) باستخدام استرداد بيانات الاعتماد يدويًا

إذا استخدمت أساليب تسجيل دخول "يدوية" واستدعيت طريقة signInWithCredentials الخاصة بالمنصّة التي تستخدمها، سيطلب تطبيقك كالمعتاد تسجيل الدخول من خلال جهة خارجية وسيستردّ بيانات الاعتماد الفعلية التابعة لجهات خارجية.

تجدر الإشارة إلى أنّ المحاكي يتيح فقط مصادقة signInWithCredential لبيانات الاعتماد التي يتم استردادها من تسجيل الدخول بحساب Google وApple وموفِّري الخدمات الآخرين الذين يستخدمون الرموز المميزة للتعريف التي يتم تنفيذها على شكل رموز JSON للويب (JWT). ولا يمكن استخدام رموز الدخول (مثل الرموز التي يوفّرها Facebook أو Twitter، وهي ليست رموز JWT). ويناقش القسم التالي بديلاً في هذه الحالات.

الاختبار غير التفاعلي

أحد أساليب الاختبارات غير التفاعلية هو تشغيل نقرات المستخدم تلقائيًا على صفحة تسجيل الدخول التي يعرضها المحاكي. بالنسبة إلى تطبيقات الويب، يمكنك استخدام واجهة تحكم مثل WebDriver. على الأجهزة الجوّالة، استخدِم أدوات اختبار واجهة المستخدم من منصتك، مثل Espresso أو Xcode.

وبدلاً من ذلك، يمكنك تعديل الرمز الخاص بك لاستخدام signInWithCredential (على سبيل المثال في أحد فروع الرموز) واستخدام خطوات مصادقة الرموز المميّزة مع رموز وهمية للمعرّفات للحسابات بدلاً من بيانات الاعتماد الحقيقية.

  1. أعِد توصيل الجزء الذي يسترد رموز idTokens من موفِّر الهوية (idToken) أو علِّق عليه، لأنّ ذلك يلغي الحاجة إلى إدخال أسماء مستخدمين وكلمات مرور حقيقية أثناء الاختبارات، ويُخفف من حدة الاختبارات من حصص واجهات برمجة التطبيقات وحدود المعدّل في موفِّر الهوية (idP).
  2. ثانيًا، يمكنك استخدام سلسلة JSON حرفية بدلاً من الرمز المميّز لـ signInWithCredential. وباستخدام SDK على الويب كمثال، يمكنك تغيير التعليمات البرمجية إلى:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
  '{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));

عند استخدام هذا الرمز مع المحاكي، سيؤدي ذلك إلى مصادقة مستخدم بنجاح لديه عنوان البريد الإلكتروني foo@example.com في Google. فكر في الحقل الفرعي على أنه مفتاح أساسي، يمكن تغييره إلى أي سلسلة، ويسخر من تسجيل دخول مستخدمين مختلفين. يمكنك استبدال firebase.auth.GoogleAuthProvider باستخدام new firebase.auth.OAuthProvider('yahoo.com') مثلاً أو أي رقم تعريف آخر لمقدّم الخدمة تريد محاكاةه.

محاكاة مصادقة الرموز المميّزة المخصّصة

يعالج محاكي المصادقة عملية المصادقة باستخدام رموز JSON المميّزة للويب المخصّصة JSON من خلال الطلبات إلى طريقة signInWithCustomToken على الأنظمة الأساسية المتوافقة، كما هو موضّح في مستندات مصادقة الإنتاج.

أوجه اختلاف محاكي المصادقة عن الإنتاج

يحاكي محاكي مصادقة Firebase العديد من ميزات منتج الإنتاج. مع ذلك، ونظرًا لاعتماد أي نوع من أنظمة المصادقة بشكل كبير على الأمان على مستويات متعددة (مثل الجهاز وموفِّري الخدمات التابعين لجهات خارجية وFirebase وما إلى ذلك)، يصعب على المحاكي إعادة إنشاء جميع المسارات بشكل صحيح.

Cloud IAM

ولا تحاول "حزمة محاكي Firebase" تكرار أو احترام أي سلوك متعلق بإدارة الهوية وإمكانية الوصول عند التشغيل. تلتزم أدوات المحاكاة بقواعد أمان Firebase المقدمة، ولكن في الحالات التي يتم فيها استخدام إدارة الهوية وإمكانية الوصول عادةً، مثل ضبط حساب الخدمة لاستدعاء دوال Cloud وبالتالي الأذونات، يكون المحاكي غير قابل للضبط وسيستخدم الحساب المتاح عالميًا على جهاز المطوّر لديك، تمامًا مثل تشغيل نص برمجي محلي مباشرةً.

نظرًا لأن تسجيل الدخول باستخدام رابط البريد الإلكتروني يعتمد على روابط Firebase الديناميكية على الأنظمة الأساسية للأجهزة الجوّالة، سيتم فتح جميع هذه الروابط على النظام الأساسي للويب (الأجهزة الجوّالة) بدلاً من ذلك.

تسجيل الدخول في الخدمات التابعة لجهات خارجية

بالنسبة إلى مسارات تسجيل الدخول في الخدمات التابعة لجهات خارجية، تعتمد مصادقة Firebase على بيانات اعتماد آمنة من موفري خدمات خارجيين مثل Twitter وGitHub.

يقبل محاكي المصادقة بيانات الاعتماد الحقيقية من موفري خدمة OpenID Connect، مثل Google وApple. لا تتوافق بيانات الاعتماد من موفّري خدمة OpenID Connect.

تسجيل الدخول باستخدام البريد الإلكتروني أو الرسائل القصيرة

في تطبيقات الإنتاج، تتضمن مسارات تسجيل الدخول إلى البريد الإلكتروني والرسائل القصيرة SMS عملية غير متزامنة يقوم فيها المستخدم بالتحقق من الرسالة المستلمة وإدخال رمز تسجيل الدخول في واجهة تسجيل الدخول. لا يُرسل محاكي المصادقة أي رسائل إلكترونية أو رسائل SMS، ولكن كما هو موضح أعلاه، فهو ينشئ رموز تسجيل الدخول ويُخرجها إلى الوحدة الطرفية لاستخدامها في الاختبار.

لا يتيح المحاكي إمكانية تحديد أرقام الهواتف الاختبارية باستخدام رموز تسجيل الدخول الثابتة كما يمكن إجراؤها باستخدام وحدة تحكُّم Firebase.

مصادقة الرمز المميّز المخصّص

لا يتأكد محاكي المصادقة من صحة توقيع الرموز المُخصصة أو انتهاء صلاحيتها. يتيح لك هذا استخدام الرموز المميزة المصنوعة يدويًا وإعادة استخدام الرموز المميزة إلى أجل غير مسمى في سيناريوهات النماذج الأولية والاختبار.

تقييد المعدّل / مكافحة إساءة الاستخدام

لا يكرر محاكي المصادقة ميزات تقييد معدل الإنتاج أو مكافحة إساءة الاستخدام.

دوال المنع

في مرحلة الإنتاج، تتم كتابة بيانات المستخدمين في مساحة التخزين مرة واحدة بعد بدء كلّ من الحدثَين beforeCreate وbeforeSignIn. وبسبب القيود الفنية، يكتب محاكي المصادقة عملية التخزين مرتين، إحداهما بعد إنشاء المستخدم والأخرى بعد تسجيل الدخول. يعني ذلك أنّه بالنسبة إلى المستخدمين الجدد، يمكنهم الاتصال بـ getAuth().getUser() بنجاح في beforeSignIn في محاكي المصادقة، ولكن سيحدث خطأ في عملية الإنتاج.

ما هي الخطوات التالية؟