MultiFactorResolver interface

الفئة المستخدمة لتسهيل الاسترداد من MultiFactorError عندما يحتاج المستخدم إلى تقديم عامل ثانٍ لتسجيل الدخول.

Signature:

export interface MultiFactorResolver 

أماكن إقامة

الموقع النوع الوصف
تلميحات متعدد العوامل[] قائمة التلميحات للعوامل الثانية اللازمة لإكمال عملية تسجيل الدخول للجلسة الحالية.
الجلسة متعدد العوامل معرِّف الجلسة لمسار تسجيل الدخول الحالي، والذي يمكن استخدامه لإكمال عملية تسجيل الدخول إلى العامل الثاني.

الطُرق

الطريقة الوصف
resolveSignIn(assertion) هي دالة مساعدّة تساعد المستخدمين على إكمال عملية تسجيل الدخول بعامل ثانٍ باستخدام MultiFactorAssertion لتأكيد إكمال المستخدم لتحدي العامل الثاني بنجاح.

Multifactorr.hints

قائمة التلميحات للعوامل الثانية اللازمة لإكمال عملية تسجيل الدخول للجلسة الحالية.

Signature:

readonly hints: MultiFactorInfo[];

جلسة MultiFactorAnswerr.session

معرِّف الجلسة لمسار تسجيل الدخول الحالي، والذي يمكن استخدامه لإكمال عملية تسجيل الدخول إلى العامل الثاني.

Signature:

readonly session: MultiFactorSession;

MultiFactorsolutionsr.resolveSignIn()

هي دالة مساعدّة تساعد المستخدمين على إكمال عملية تسجيل الدخول بعامل ثانٍ باستخدام MultiFactorAssertion لتأكيد إكمال المستخدم لتحدي العامل الثاني بنجاح.

Signature:

resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;

المَعلمات

المعلمة النوع الوصف
تأكيد التأكيد المتعدّد العوامل التأكيد المتعدّد العوامل المستخدم لحل عملية تسجيل الدخول.

المرتجعات:

الوعد<UserCredential>

الوعد الذي يتم حله مع كائن بيانات اعتماد المستخدم.

مثال

const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);

مثال

let resolver;
let multiFactorHints;

signInWithEmailAndPassword(auth, email, password)
    .then((result) => {
      // User signed in. No 2nd factor challenge is needed.
    })
    .catch((error) => {
      if (error.code == 'auth/multi-factor-auth-required') {
        resolver = getMultiFactorResolver(auth, error);
        // Show UI to let user select second factor.
        multiFactorHints = resolver.hints;
      } else {
        // Handle other errors.
      }
    });

// The enrolled second factors that can be used to complete
// sign-in are returned in the `MultiFactorResolver.hints` list.
// UI needs to be presented to allow the user to select a second factor
// from that list.

const selectedHint = // ; selected from multiFactorHints
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
  multiFactorHint: selectedHint,
  session: resolver.session
};
const verificationId = phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);
// Store `verificationId` and show UI to let user enter verification code.

// UI to enter verification code and continue.
// Continue button click handler
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);