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입니다. |
인증 코드 | 문자열 | 사용자의 휴대기기로 전송된 인증 코드입니다. |
반환:
인증 제공업체의 사용자 인증 정보입니다.
예 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);