MultiFactorResolver interface

Lớp này được dùng để hỗ trợ việc khôi phục từ MultiFactorError khi người dùng cần cung cấp một yếu tố thứ hai để đăng nhập.

Chữ ký:

export interface MultiFactorResolver 

Thuộc tính

Tài sản Loại Mô tả
gợi ý Thông tin đa yếu tố[] Danh sách gợi ý cho các yếu tố thứ hai cần thiết để hoàn tất quá trình đăng nhập cho phiên hiện tại.
phiên hoạt động MultiFactorSession (Phiên đa yếu tố) Giá trị nhận dạng phiên của quy trình đăng nhập hiện tại, có thể được dùng để hoàn tất quy trình đăng nhập qua yếu tố thứ hai.

Phương thức

Phương thức Mô tả
resolveSignIn(xác nhận) Một chức năng trợ giúp để giúp người dùng hoàn tất quá trình đăng nhập bằng yếu tố thứ hai bằng cách sử dụng MultiFactorAssertion xác nhận người dùng đã hoàn tất thành công thử thách xác thực thứ hai.

MultiFactorResolver.hints

Danh sách gợi ý cho các yếu tố thứ hai cần thiết để hoàn tất quá trình đăng nhập cho phiên hiện tại.

Chữ ký:

readonly hints: MultiFactorInfo[];

MultiFactorResolver.session

Giá trị nhận dạng phiên của quy trình đăng nhập hiện tại, có thể được dùng để hoàn tất quy trình đăng nhập qua yếu tố thứ hai.

Chữ ký:

readonly session: MultiFactorSession;

MultiFactorResolver.resolveSignIn()

Một chức năng trợ giúp để giúp người dùng hoàn tất quá trình đăng nhập bằng yếu tố thứ hai bằng cách sử dụng MultiFactorAssertion xác nhận người dùng đã hoàn tất thành công thử thách xác thực thứ hai.

Chữ ký:

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

Thông số

Thông số Loại Mô tả
câu nhận định MultiFactorAssertion (Xác nhận đa yếu tố) Xác nhận đa yếu tố để giải quyết quy trình đăng nhập.

Trường hợp trả lại hàng:

Cam kết<UserCredential>

Lời hứa được phân giải bằng đối tượng thông tin xác thực người dùng.

Ví dụ

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

Ví dụ

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