MultiFactorResolver interface

La clase utilizada para facilitar la recuperación de MultiFactorError cuando un usuario necesita proporcionar un segundo factor para iniciar sesión.

Firma:

export interface MultiFactorResolver 

Propiedades

Propiedad Tipo Descripción
pistas Información MultiFactor [] La lista de sugerencias para los segundos factores necesarios para completar el inicio de sesión en la sesión actual.
sesión Sesión MultiFactor El identificador de sesión para el flujo de inicio de sesión actual, que se puede utilizar para completar el inicio de sesión del segundo factor.

Métodos

Método Descripción
resolverSignIn(aserción) Una función auxiliar para ayudar a los usuarios a completar el inicio de sesión con un segundo factor mediante una MultiFactorAssertion que confirma que el usuario completó con éxito el desafío del segundo factor.

MultiFactorResolver.sugerencias

La lista de sugerencias para los segundos factores necesarios para completar el inicio de sesión en la sesión actual.

Firma:

readonly hints: MultiFactorInfo[];

Sesión MultiFactorResolver

El identificador de sesión para el flujo de inicio de sesión actual, que se puede utilizar para completar el inicio de sesión del segundo factor.

Firma:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Una función auxiliar para ayudar a los usuarios a completar el inicio de sesión con un segundo factor mediante una MultiFactorAssertion que confirma que el usuario completó con éxito el desafío del segundo factor.

Firma:

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

Parámetros

Parámetro Tipo Descripción
afirmación Aserción multifactor La aserción multifactor para resolver el inicio de sesión.

Devoluciones:

Promesa< Credencial de usuario >

La promesa que se resuelve con el objeto de credencial de usuario.

Ejemplo

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

Ejemplo

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