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