La classe utilizzata per facilitare il ripristino da MultiFactorError quando un utente deve fornire un secondo fattore per accedere.
Firma:
export interface MultiFactorResolver
Proprietà
Proprietà | Tipo | Descrizione |
---|---|---|
suggerimenti | MultiFactorInfo [] | L'elenco dei suggerimenti per i secondi fattori necessari per completare l'accesso per la sessione corrente. |
sessione | Sessione MultiFactor | L'identificatore di sessione per il flusso di accesso corrente, che può essere utilizzato per completare l'accesso del secondo fattore. |
Metodi
Metodo | Descrizione |
---|---|
risolvereSignIn(asserzione) | Una funzione di supporto per aiutare gli utenti a completare l'accesso con un secondo fattore utilizzando un'asserzione MultiFactor che conferma che l'utente ha completato con successo la sfida del secondo fattore. |
MultiFactorResolver.hints
L'elenco dei suggerimenti per i secondi fattori necessari per completare l'accesso per la sessione corrente.
Firma:
readonly hints: MultiFactorInfo[];
MultiFactorResolver.session
L'identificatore di sessione per il flusso di accesso corrente, che può essere utilizzato per completare l'accesso del secondo fattore.
Firma:
readonly session: MultiFactorSession;
MultiFactorResolver.resolveSignIn()
Una funzione di supporto per aiutare gli utenti a completare l'accesso con un secondo fattore utilizzando un'asserzione MultiFactor che conferma che l'utente ha completato con successo la sfida del secondo fattore.
Firma:
resolveSignIn(assertion: MultiFactorAssertion): Promise<UserCredential>;
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
asserzione | Asserzione multifattoriale | L'asserzione a più fattori con cui risolvere l'accesso. |
Ritorna:
Promessa < Credenziali utente >
La promessa che si risolve con l'oggetto credenziale dell'utente.
Esempio
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
const userCredential = await resolver.resolveSignIn(multiFactorAssertion);
Esempio
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);