MultiFactorResolver interface

Klasa używana do ułatwienia odzyskiwania po MultiFactorError , gdy użytkownik musi podać drugi czynnik, aby się zalogować.

Podpis:

export interface MultiFactorResolver 

Nieruchomości

Nieruchomość Typ Opis
poradnik Informacje wieloczynnikowe [] Lista podpowiedzi dla drugich czynników potrzebnych do zakończenia logowania do bieżącej sesji.
sesja Sesja wieloczynnikowa Identyfikator sesji dla bieżącego przepływu logowania, którego można użyć do ukończenia logowania drugiego czynnika.

Metody

metoda Opis
rozwiązaćSignIn (twierdzenie) Funkcja pomocnicza pomagająca użytkownikom ukończyć logowanie przy użyciu drugiego czynnika przy użyciu MultiFactorAssertion potwierdzającej, że użytkownik pomyślnie ukończył wyzwanie drugiego czynnika.

Wskazówki dotyczące MultiFactorResolver

Lista podpowiedzi dla drugich czynników potrzebnych do zakończenia logowania do bieżącej sesji.

Podpis:

readonly hints: MultiFactorInfo[];

Sesja MultiFactorResolver

Identyfikator sesji dla bieżącego przepływu logowania, którego można użyć do ukończenia logowania drugiego czynnika.

Podpis:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Funkcja pomocnicza pomagająca użytkownikom ukończyć logowanie przy użyciu drugiego czynnika przy użyciu MultiFactorAssertion potwierdzającej, że użytkownik pomyślnie ukończył wyzwanie drugiego czynnika.

Podpis:

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

Parametry

Parametr Typ Opis
twierdzenie Twierdzenie wieloczynnikowe Potwierdzenie wieloczynnikowe, za pomocą którego należy rozwiązać logowanie.

Zwroty:

Obietnica< UserCredential >

Obietnica, która jest rozpoznawana z obiektem poświadczeń użytkownika.

Przykład

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

Przykład

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