PhoneAuthProvider class

PhoneAuthCredential을 생성하는 제공자입니다.

PhoneAuthProvider는 Node.js 환경에서 작동하지 않습니다.

서명:

export declare class PhoneAuthProvider 

생성자

생성자 특수키 설명
(생성자)(인증) PhoneAuthProvider 클래스의 새 인스턴스를 생성합니다.

속성

속성 특수키 유형 설명
PHONE_SIGN_IN_METHOD static '휴대전화' 항상 SignInMethod.PHONE으로 설정합니다.
PROVIDER_ID static '휴대전화' 항상 ProviderId.PHONE으로 설정합니다.
providerId '전화' 항상 ProviderId.PHONE으로 설정합니다.

메소드

메서드 특수키 설명
credential(verificationId, verificationCode) static PhoneAuthProvider.verifyPhoneNumber()의 인증 ID와 사용자의 휴대기기로 전송된 코드를 고려하여 전화 인증 사용자 인증 정보를 만듭니다.
credentialFromError(오류) static 오류가 발생하면 AuthCredential을 반환합니다.
credentialFromResult(userCredential) static UserCredential에서 AuthCredential을 생성합니다.
verifyPhoneNumber(phoneOptions, applicationVerifier) 지정된 전화번호로 인증 코드를 전송하여 전화번호 인증 흐름을 시작합니다.

PhoneAuthProvider.(생성자)

PhoneAuthProvider 클래스의 새 인스턴스를 생성합니다.

서명:

constructor(auth: Auth);

매개변수

매개변수 유형 설명
auth 인증 로그인이 이루어지는 Firebase 인증 인스턴스입니다.

PhoneAuthProvider.PHONE_SIGN_IN_METHOD

항상 SignInMethod.PHONE으로 설정합니다.

서명:

static readonly PHONE_SIGN_IN_METHOD: 'phone';

PhoneAuthProvider.PROVIDER_ID

항상 ProviderId.PHONE으로 설정합니다.

서명:

static readonly PROVIDER_ID: 'phone';

PhoneAuthProvider.providerId

항상 ProviderId.PHONE으로 설정합니다.

서명:

readonly providerId: "phone";

PhoneAuthProvider.credential()

PhoneAuthProvider.verifyPhoneNumber()의 인증 ID와 사용자의 휴대기기로 전송된 코드를 고려하여 전화 인증 사용자 인증 정보를 만듭니다.

서명:

static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;

매개변수

매개변수 유형 설명
인증 ID 문자열 PhoneAuthProvider.verifyPhoneNumber()에서 반환된 인증 ID입니다.
인증 코드 문자열 사용자의 휴대기기로 전송된 인증 코드입니다.

반환:

PhoneAuthCredential

인증 제공업체의 사용자 인증 정보입니다.

예 1

const provider = new PhoneAuthProvider(auth);
const verificationId = provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = signInWithCredential(auth, authCredential);

예 2

signInWithPhoneNumber 메서드를 사용하여 대체 흐름이 제공됩니다.

const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = await confirmationResult.confirm(verificationCode);

PhoneAuthProvider.credentialFromError()

오류가 발생하면 AuthCredential을 반환합니다.

이 메서드는 auth/account-exists-with-different-credentials와 같은 오류에 사용할 수 있습니다. 이는 사용자의 전화번호를 설정하려고 하는데 해당 번호가 이미 다른 계정에 연결되어 있는 경우 복구하는 데 유용합니다. 예를 들어 다음 코드는 현재 사용자의 전화번호를 업데이트하려고 시도하며, 이 작업이 실패하면 사용자를 해당 번호에 연결된 계정과 연결합니다.

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(number, verifier);
try {
  const code = ''; // Prompt the user for the verification code
  await updatePhoneNumber(
      auth.currentUser,
      PhoneAuthProvider.credential(verificationId, code));
} catch (e) {
  if ((e as FirebaseError)?.code === 'auth/account-exists-with-different-credential') {
    const cred = PhoneAuthProvider.credentialFromError(e);
    await linkWithCredential(auth.currentUser, cred);
  }
}

// At this point, auth.currentUser.phoneNumber === number.

서명:

static credentialFromError(error: FirebaseError): AuthCredential | null;

매개변수

매개변수 유형 설명
오류 Firebase 오류 사용자 인증 정보를 생성할 오류입니다.

반환:

AuthCredential | 없음

PhoneAuthProvider.credentialFromResult()

UserCredential에서 AuthCredential을 생성합니다.

서명:

static credentialFromResult(userCredential: UserCredential): AuthCredential | null;

매개변수

매개변수 유형 설명
사용자 인증 정보 UserCredential 사용자 인증 정보입니다.

반환:

AuthCredential | 없음

PhoneAuthProvider.verifyPhoneNumber()

지정된 전화번호로 인증 코드를 전송하여 전화번호 인증 흐름을 시작합니다.

서명:

verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;

매개변수

매개변수 유형 설명
전화 옵션 PhoneInfoOptions | 문자열
애플리케이션 인증자 ApplicationVerifier 악용을 방지하기 위해 이 메서드에는 ApplicationVerifier도 필요합니다. 이 SDK에는 reCAPTCHA 기반 구현인 RecaptchaVerifier가 포함되어 있습니다.

반환:

프로미스<string>

이 흐름을 식별하기 위해 PhoneAuthProvider.credential()에 전달할 수 있는 인증 ID에 대한 프로미스입니다.

예 1

const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber(phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const authCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, authCredential);

예 2

signInWithPhoneNumber 메서드를 사용하여 대체 흐름이 제공됩니다.

const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = confirmationResult.confirm(verificationCode);

// 'recaptcha-container' is the ID of an element in the DOM.
const applicationVerifier = new RecaptchaVerifier('recaptcha-container');
const provider = new PhoneAuthProvider(auth);
const verificationId = await provider.verifyPhoneNumber('+16505550101', applicationVerifier);
// Obtain the verificationCode from the user.
const phoneCredential = PhoneAuthProvider.credential(verificationId, verificationCode);
const userCredential = await signInWithCredential(auth, phoneCredential);