MultiFactorResolver interface

Kelas yang digunakan untuk memfasilitasi pemulihan dari MultiFactorError ketika pengguna perlu memberikan faktor kedua untuk masuk.

Tanda tangan:

export interface MultiFactorResolver 

Properti

Properti Jenis Keterangan
petunjuk Info MultiFaktor [] Daftar petunjuk untuk faktor kedua yang diperlukan untuk menyelesaikan proses masuk pada sesi saat ini.
sidang Sesi MultiFaktor Pengidentifikasi sesi untuk alur masuk saat ini, yang dapat digunakan untuk menyelesaikan proses masuk faktor kedua.

Metode

metode Keterangan
menyelesaikanMasuk(pernyataan) Fungsi pembantu untuk membantu pengguna menyelesaikan proses masuk dengan faktor kedua menggunakan MultiFactorAssertion yang mengonfirmasi bahwa pengguna berhasil menyelesaikan tantangan faktor kedua.

MultiFactorResolver.petunjuk

Daftar petunjuk untuk faktor kedua yang diperlukan untuk menyelesaikan proses masuk pada sesi saat ini.

Tanda tangan:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.sesi

Pengidentifikasi sesi untuk alur masuk saat ini, yang dapat digunakan untuk menyelesaikan proses masuk faktor kedua.

Tanda tangan:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Fungsi pembantu untuk membantu pengguna menyelesaikan proses masuk dengan faktor kedua menggunakan MultiFactorAssertion yang mengonfirmasi bahwa pengguna berhasil menyelesaikan tantangan faktor kedua.

Tanda tangan:

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

Parameter

Parameter Jenis Keterangan
tuntutan Pernyataan MultiFaktor Pernyataan multi-faktor untuk menyelesaikan proses masuk.

Pengembalian:

Janji< UserCredential >

Janji yang diselesaikan 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);