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