MultiFactorResolver interface

Es la clase que se usa para facilitar la recuperación de MultiFactorError cuando un usuario necesita proporcionar un segundo factor para acceder.

Firma:

export interface MultiFactorResolver 

Propiedades

Propiedad Tipo Descripción
pistas MultiFactorInfo La lista de sugerencias sobre los segundos factores necesarios para completar el acceso en la sesión actual.
sesión MultiFactorSession Es el identificador de sesión para el flujo de acceso actual, que se puede usar para completar el acceso de segundo factor.

Métodos

Método Descripción
resolveSignIn(aserción) Una función auxiliar que ayuda a los usuarios a completar el acceso con un segundo factor a través de un MultiFactorAssertion confirma que el usuario completó correctamente el desafío del segundo factor.

MultiFactorResolver.hints

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

Firma:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

Es el identificador de sesión para el flujo de acceso actual, que se puede usar para completar el acceso de segundo factor.

Firma:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Una función auxiliar que ayuda a los usuarios a completar el acceso con un segundo factor a través de un MultiFactorAssertion confirma que el usuario completó correctamente el desafío del segundo factor.

Firma:

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

Parámetros

Parámetro Tipo Descripción
aserción MultiFactorAssertion La aserción de varios factores para resolver el acceso.

Muestra:

Promesa<UserCredential>

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