MultiFactorResolver interface

Klasa używana do odzyskiwania po wystąpieniu MultiFactorError, gdy użytkownik musi podać drugi składnik logowania, aby się zalogować.

Podpis:

export interface MultiFactorResolver 

Właściwości

Właściwość Typ Opis
wskazówki MultiFactorInfo[] Lista wskazówek dotyczących drugich czynników wymaganych do zalogowania się w bieżącej sesji.
sesja Sesja wieloskładnikowa Identyfikator sesji dla bieżącego procesu logowania, którego można użyć do zalogowania się na drugim składniku.

Metody

Metoda Opis
resolveSignIn(assertion) Funkcja pomocnicza, która pomaga użytkownikom w logowaniu się z użyciem drugiego składnika. Przy użyciu metody MultiFactorAssertion potwierdza, że użytkownik ukończył drugi etap testu.

MultiFactor resolver.hints

Lista wskazówek dotyczących drugich czynników wymaganych do zalogowania się w bieżącej sesji.

Podpis:

readonly hints: MultiFactorInfo[];

MultiFactorPrzed.sesja

Identyfikator sesji dla bieżącego procesu logowania, którego można użyć do zalogowania się na drugim składniku.

Podpis:

readonly session: MultiFactorSession;

MultiFactor resolver.resolveSignIn()

Funkcja pomocnicza, która pomaga użytkownikom w logowaniu się z użyciem drugiego składnika. Przy użyciu metody MultiFactorAssertion potwierdza, że użytkownik ukończył drugi etap testu.

Podpis:

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

Parametry

Parametr Typ Opis
asercja Assertion wieloskładnikowy Potwierdzenie wielopoziomowe potrzebne do rozwiązania logowania.

Zwroty:

Obietnica<UserCredential>

Obietnica zrealizowana z obiektem danych logowania 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);