MultiFactorResolver interface

Kullanıcının oturum açmak için ikinci bir faktör sağlaması gerektiğinde MultiFactorError'dan kurtarma işlemini kolaylaştırmak için kullanılan sınıf.

İmza:

export interface MultiFactorResolver 

Özellikler

Özellik Tür Açıklama
ipuçları MultiFactorInfo[] Geçerli oturumda oturum açma işleminin tamamlanması için gereken ikinci faktörlere yönelik ipuçları listesi.
oturum MultiFaktörOturum İkinci faktör oturum açma işlemini tamamlamak için kullanılabilen mevcut oturum açma akışının oturum tanımlayıcısı.

Yöntemler

Yöntem Açıklama
resolveSignIn(assertion) MultiFactorAssertion ile kullanıcının ikinci faktör sorgulamasını başarıyla tamamladığını onaylayan, ikinci bir faktör ile oturum açma işlemini tamamlamaya yardımcı olan yardımcı işlev.

MultiFaktör Çözümleyici.ipuçları

Geçerli oturumda oturum açma işleminin tamamlanması için gereken ikinci faktörlere yönelik ipuçları listesi.

İmza:

readonly hints: MultiFactorInfo[];

MultiFaktör Çözümleyici.oturum

İkinci faktör oturum açma işlemini tamamlamak için kullanılabilen mevcut oturum açma akışının oturum tanımlayıcısı.

İmza:

readonly session: MultiFactorSession;

MultiFaktörÇözümleyici.resolveSignIn()

MultiFactorAssertion ile kullanıcının ikinci faktör sorgulamasını başarıyla tamamladığını onaylayan, ikinci bir faktör ile oturum açma işlemini tamamlamaya yardımcı olan yardımcı işlev.

İmza:

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

Parametreler

Parametre Tür Açıklama
onaylama MultiFactorAssertion Oturum açmayı çözümlemek için kullanılacak çok öğeli onayı.

Şunu döndürür:

Promise<UserCredential> (Kullanıcı Kimlik Bilgisi)

Kullanıcı kimlik bilgisi nesnesiyle çözümlenen taahhüt.

Örnek

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

Örnek

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