MultiFactorResolver interface

Classe utilisée pour faciliter la récupération à partir de MultiFactorError lorsqu'un utilisateur doit fournir un deuxième facteur pour se connecter.

Signature:

export interface MultiFactorResolver 

Propriétés

Propriété Taper Description
astuces MultiFactorInfo [] La liste des astuces pour les seconds facteurs nécessaires pour terminer la connexion à la session en cours.
session Session multifacteur L'identifiant de session pour le flux de connexion actuel, qui peut être utilisé pour terminer la connexion au deuxième facteur.

Méthodes

Méthode Description
solveSignIn (assertion) Une fonction d'assistance pour aider les utilisateurs à se connecter avec un deuxième facteur à l'aide d'une MultiFactorAssertion confirmant que l'utilisateur a réussi le défi du deuxième facteur.

MultiFactorResolver.hints

La liste des astuces pour les seconds facteurs nécessaires pour terminer la connexion à la session en cours.

Signature:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

L'identifiant de session pour le flux de connexion actuel, qui peut être utilisé pour terminer la connexion au deuxième facteur.

Signature:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Une fonction d'assistance pour aider les utilisateurs à se connecter avec un deuxième facteur à l'aide d'une MultiFactorAssertion confirmant que l'utilisateur a réussi le défi du deuxième facteur.

Signature:

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

Paramètres

Paramètre Taper Description
affirmation Assertion multifacteur L'assertion multifactorielle avec laquelle résoudre la connexion.

Retour:

Promesse < UserCredential >

Promesse qui se résout avec l'objet d'informations d'identification de l'utilisateur.

Exemple

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

Exemple

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);