MultiFactorUser interface

User와 관련된 다단계 관련 속성 및 작업을 정의하는 인터페이스입니다.

서명:

export interface MultiFactorUser 

속성

속성 유형 설명
enrolledFactors MultiFactorInfo[] 사용자가 등록된 2단계 인증 목록을 반환합니다.

메소드

메서드 설명
enroll(assertion, displayName) 사용자의 MultiFactorAssertion에서 식별된 대로 두 번째 단계를 등록합니다.
getSession() 2단계 등록 작업의 세션 식별자를 반환합니다. 이는 두 번째 단계를 등록하려는 사용자를 식별하는 데 사용됩니다.
등록 해제(옵션) 지정된 두 번째 단계를 등록 해제합니다.

MultiFactorUser.enrolledFactors

사용자가 등록된 2단계 인증 목록을 반환합니다.

서명:

readonly enrolledFactors: MultiFactorInfo[];

MultiFactorUser.enroll()

사용자의 MultiFactorAssertion에서 식별된 대로 두 번째 단계를 등록합니다.

해결 시 JWT 페이로드의 변경사항을 반영하도록 사용자 토큰이 업데이트됩니다. 최종 사용자의 두 번째 단계를 식별하는 데 사용되는 추가 표시 이름 매개변수를 허용합니다. 이 작업을 성공하려면 최근에 재인증해야 합니다. 등록이 완료되면 기존 Firebase 세션 (갱신 토큰)이 취소됩니다. 새 단계가 등록되면 사용자의 이메일로 이메일 알림이 전송됩니다.

서명:

enroll(assertion: MultiFactorAssertion, displayName?: string | null): Promise<void>;

매개변수

매개변수 유형 설명
어설션 MultiFactorAssertion 등록할 다중 인증(MFA)입니다.
displayName 문자열 | 없음 두 번째 단계의 표시 이름입니다.

반환:

프로미스<void>

const multiFactorUser = multiFactor(auth.currentUser);
const multiFactorSession = await multiFactorUser.getSession();

// Send verification code.
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
  phoneNumber: phoneNumber,
  session: multiFactorSession
};
const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);

// Obtain verification code from user.
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
await multiFactorUser.enroll(multiFactorAssertion);
// Second factor enrolled.

MultiFactorUser.getSession()

2단계 등록 작업의 세션 식별자를 반환합니다. 이는 두 번째 단계를 등록하려는 사용자를 식별하는 데 사용됩니다.

서명:

getSession(): Promise<MultiFactorSession>;

반환:

프로미스<MultiFactorSession>

MultiFactorSession으로 확인되는 프로미스입니다.

const multiFactorUser = multiFactor(auth.currentUser);
const multiFactorSession = await multiFactorUser.getSession();

// Send verification code.
const phoneAuthProvider = new PhoneAuthProvider(auth);
const phoneInfoOptions = {
  phoneNumber: phoneNumber,
  session: multiFactorSession
};
const verificationId = await phoneAuthProvider.verifyPhoneNumber(phoneInfoOptions, appVerifier);

// Obtain verification code from user.
const phoneAuthCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const multiFactorAssertion = PhoneMultiFactorGenerator.assertion(phoneAuthCredential);
await multiFactorUser.enroll(multiFactorAssertion);

MultiFactorUser.unenroll()

지정된 두 번째 단계를 등록 해제합니다.

삭제할 인수를 지정하려면 MultiFactorInfo 객체 (MultiFactorUser.enrolledFactors에서 가져옴) 또는 계수의 UID 문자열을 전달합니다. 계정이 등록 해제되어도 세션은 취소되지 않습니다. 변경사항을 알리는 이메일 알림이 사용자에게 전송될 수 있습니다. 이 작업을 성공하려면 최근에 재인증해야 합니다. 기존 요소가 등록 해제되면 사용자의 이메일로 이메일 알림이 전송됩니다.

서명:

unenroll(option: MultiFactorInfo | string): Promise<void>;

매개변수

매개변수 유형 설명
option MultiFactorInfo | 문자열 등록 해제를 위한 다단계 옵션

반환:

프로미스<void>

  • 등록 해제 작업이 완료되면 확인되는 Promise입니다.

const multiFactorUser = multiFactor(auth.currentUser);
// Present user the option to choose which factor to unenroll.
await multiFactorUser.unenroll(multiFactorUser.enrolledFactors[i])