MultiFactorResolver interface

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

İmza:

export interface MultiFactorResolver 

Özellikler

Mülk Tip Tanım
ipuçları MultiFactorInfo [] Geçerli oturumda oturum açma işlemini tamamlamak için gereken ikinci faktörlere ilişkin ipuçlarının listesi.
oturum Çok Faktörlü Oturum İkinci faktör oturum açma işlemini tamamlamak için kullanılabilecek, geçerli oturum açma akışına ilişkin oturum tanımlayıcısı.

Yöntemler

Yöntem Tanım
çözümSignIn(iddia) Kullanıcıların ikinci faktör sorgulamasını başarıyla tamamladığını doğrulayan bir MultiFactorAssertion kullanarak ikinci bir faktörle oturum açmayı tamamlamalarına yardımcı olan bir yardımcı işlev.

MultiFactorResolver.hints

Geçerli oturumda oturum açma işlemini tamamlamak için gereken ikinci faktörlere ilişkin ipuçlarının listesi.

İmza:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

İkinci faktör oturum açma işlemini tamamlamak için kullanılabilecek, geçerli oturum açma akışına ilişkin oturum tanımlayıcısı.

İmza:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Kullanıcıların ikinci faktör sorgulamasını başarıyla tamamladığını doğrulayan bir MultiFactorAssertion kullanarak ikinci bir faktörle oturum açmayı tamamlamalarına yardımcı olan bir yardımcı işlev.

İmza:

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

Parametreler

Parametre Tip Tanım
iddia Çok Faktörlü Onay Oturum açmayı çözümleyecek çok faktörlü onaylama.

İadeler:

Söz< Kullanıcı Kimlik Bilgisi >

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

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