MultiFactorResolver interface

Class yang digunakan untuk memfasilitasi pemulihan dari MultiFactorError saat pengguna perlu memberikan faktor kedua untuk login.

Tanda Tangan:

export interface MultiFactorResolver 

Properti

Properti Jenis Deskripsi
petunjuk MultiFactorInfo[] Daftar petunjuk untuk faktor kedua yang diperlukan guna menyelesaikan login untuk sesi saat ini.
sesi MultiFactorSession ID sesi untuk alur login saat ini, yang dapat digunakan untuk menyelesaikan login faktor kedua.

Metode

Metode Deskripsi
resolveSignIn(pernyataan) Fungsi bantuan untuk membantu pengguna menyelesaikan proses login dengan faktor kedua menggunakan MultiFactorAssertion yang mengonfirmasi bahwa pengguna berhasil menyelesaikan verifikasi faktor kedua.

MultiFactorResolver.hints

Daftar petunjuk untuk faktor kedua yang diperlukan guna menyelesaikan login untuk sesi saat ini.

Tanda Tangan:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

ID sesi untuk alur login saat ini, yang dapat digunakan untuk menyelesaikan login faktor kedua.

Tanda Tangan:

readonly session: MultiFactorSession;

MultiFaktorResolver.resolveSignIn()

Fungsi bantuan untuk membantu pengguna menyelesaikan proses login dengan faktor kedua menggunakan MultiFactorAssertion yang mengonfirmasi bahwa pengguna berhasil menyelesaikan verifikasi faktor kedua.

Tanda Tangan:

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

Parameter

Parameter Jenis Deskripsi
pernyataan MultiFactorAssertion Pernyataan multi-faktor untuk me-resolve login.

Hasil:

Promise<UserCredential>

Promise yang di-resolve dengan objek kredensial pengguna.

Contoh

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

Contoh

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