Classe utilisée pour faciliter la récupération à partir de MultiFactorError lorsqu'un utilisateur doit fournir un deuxième facteur pour se connecter.
Signature:
export interface MultiFactorResolver
Propriétés
Propriété | Taper | Description |
---|---|---|
astuces | MultiFactorInfo [] | La liste des astuces pour les seconds facteurs nécessaires pour terminer la connexion à la session en cours. |
session | Session multifacteur | L'identifiant de session pour le flux de connexion actuel, qui peut être utilisé pour terminer la connexion au deuxième facteur. |
Méthodes
Méthode | Description |
---|---|
solveSignIn (assertion) | Une fonction d'assistance pour aider les utilisateurs à se connecter avec un deuxième facteur à l'aide d'une MultiFactorAssertion confirmant que l'utilisateur a réussi le défi du deuxième facteur. |
MultiFactorResolver.hints
La liste des astuces pour les seconds facteurs nécessaires pour terminer la connexion à la session en cours.
Signature:
readonly hints: MultiFactorInfo[];
MultiFactorResolver.session
L'identifiant de session pour le flux de connexion actuel, qui peut être utilisé pour terminer la connexion au deuxième facteur.
Signature:
readonly session: MultiFactorSession;
MultiFactorResolver.resolveSignIn()
Une fonction d'assistance pour aider les utilisateurs à se connecter avec un deuxième facteur à l'aide d'une MultiFactorAssertion confirmant que l'utilisateur a réussi le défi du deuxième facteur.
Signature:
resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
Paramètres
Paramètre | Taper | Description |
---|---|---|
affirmation | Assertion multifacteur | L'assertion multifactorielle avec laquelle résoudre la connexion. |
Retour:
Promesse < UserCredential >
Promesse qui se résout avec l'objet d'informations d'identification de l'utilisateur.
Exemple
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
Exemple
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);