MultiFactorResolver interface

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

إمضاء:

export interface MultiFactorResolver 

ملكيات

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

طُرق

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

MultiFactorResolver.تلميحات

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

إمضاء:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

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

إمضاء:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

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

إمضاء:

resolveSignIn(assertion: MultiFactorAssertion): Promise<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);