MultiFactorResolver interface

Die Klasse, die zur Erleichterung der Wiederherstellung nach MultiFactorError verwendet wird, wenn ein Benutzer zum Anmelden einen zweiten Faktor angeben muss.

Unterschrift:

export interface MultiFactorResolver 

Eigenschaften

Eigentum Typ Beschreibung
Hinweise MultiFactorInfo [] Die Liste der Hinweise für die zweiten Faktoren, die zum Abschließen der Anmeldung für die aktuelle Sitzung erforderlich sind.
Sitzung MultiFactorSession Die Sitzungskennung für den aktuellen Anmeldeablauf, die zum Abschließen der Anmeldung mit dem zweiten Faktor verwendet werden kann.

Methoden

Methode Beschreibung
auflösenSignIn(Behauptung) Eine Hilfsfunktion, die Benutzern dabei hilft, die Anmeldung mit einem zweiten Faktor mithilfe einer MultiFactorAssertion abzuschließen, die bestätigt, dass der Benutzer die zweite Faktor-Herausforderung erfolgreich abgeschlossen hat.

MultiFactorResolver.hints

Die Liste der Hinweise für die zweiten Faktoren, die zum Abschließen der Anmeldung für die aktuelle Sitzung erforderlich sind.

Unterschrift:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

Die Sitzungskennung für den aktuellen Anmeldeablauf, die zum Abschließen der Anmeldung mit dem zweiten Faktor verwendet werden kann.

Unterschrift:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Eine Hilfsfunktion, die Benutzern dabei hilft, die Anmeldung mit einem zweiten Faktor mithilfe einer MultiFactorAssertion abzuschließen, die bestätigt, dass der Benutzer die zweite Faktor-Herausforderung erfolgreich abgeschlossen hat.

Unterschrift:

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

Parameter

Parameter Typ Beschreibung
Behauptung MultiFactorAssertion Die Multi-Faktor-Behauptung, mit der die Anmeldung aufgelöst werden soll.

Kehrt zurück:

Versprechen< UserCredential >

Das Versprechen, das mit dem Benutzeranmeldeinformationsobjekt aufgelöst wird.

Beispiel

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

Beispiel

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