MultiFactorResolver interface

המחלקה המשמשת כדי להקל על התאוששות מ- MultiFactorError כאשר משתמש צריך לספק גורם שני כדי להיכנס.

חֲתִימָה:

export interface MultiFactorResolver 

נכסים

תכונה סוּג תיאור
רמזים MultiFactorInfo [] רשימת הרמזים לגורמים השניים הדרושים להשלמת הכניסה להפעלה הנוכחית.
מוֹשָׁב MultiFactorSession מזהה ההפעלה עבור זרימת הכניסה הנוכחית, שבו ניתן להשתמש כדי להשלים את הכניסה של הגורם השני.

שיטות

שיטה תיאור
resolveSignIn(assertion) פונקציית עוזר כדי לעזור למשתמשים להשלים כניסה עם גורם שני באמצעות MultiFactorAssertion המאשרת שהמשתמש סיים בהצלחה את אתגר הגורם השני.

MultiFactorResolver.hints

רשימת הרמזים לגורמים השניים הדרושים להשלמת הכניסה להפעלה הנוכחית.

חֲתִימָה:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

מזהה ההפעלה עבור זרימת הכניסה הנוכחית, שבו ניתן להשתמש כדי להשלים את הכניסה של הגורם השני.

חֲתִימָה:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

פונקציית עוזר כדי לעזור למשתמשים להשלים כניסה עם גורם שני באמצעות MultiFactorAssertion המאשרת שהמשתמש סיים בהצלחה את אתגר הגורם השני.

חֲתִימָה:

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

פרמטרים

פָּרָמֶטֶר סוּג תיאור
טַעֲנָה MultiFactorAssertion הטענה מרובת הגורמים לפתרון כניסה באמצעותה.

החזרות:

הבטחה< 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);