Поставщик для создания PhoneAuthCredential .
PhoneAuthProvider
не работает в среде Node.js.
Подпись:
export declare class PhoneAuthProvider
Конструкторы
Конструктор | Модификаторы | Описание |
---|---|---|
(конструктор)(автор) | Создает новый экземпляр класса PhoneAuthProvider . |
Характеристики
Свойство | Модификаторы | Тип | Описание |
---|---|---|---|
PHONE_SIGN_IN_METHOD | static | 'телефон' | Всегда установлено значение SignInMethod. .ТЕЛЕФОН. |
PROVIDER_ID | static | 'телефон' | Всегда установлено значение ProviderId. .ТЕЛЕФОН. |
идентификатор поставщика | "телефон" | Всегда установлено значение ProviderId. .ТЕЛЕФОН. |
Методы
Метод | Модификаторы | Описание |
---|---|---|
учетные данные (идентификатор проверки, код проверки) | static | Создает учетные данные для проверки подлинности телефона на основе идентификатора проверки из PhoneAuthProvider.verifyPhoneNumber() и кода, который был отправлен на мобильное устройство пользователя. |
credentialFromError (ошибка) | static | Возвращает AuthCredential при передаче ошибки. |
credentialFromResult (userCredential) | static | Генерирует AuthCredential из UserCredential. . |
verifyPhoneNumber(phoneOptions, applicationVerifier) | Запускает процесс аутентификации номера телефона, отправляя код подтверждения на указанный номер телефона. |
PhoneAuthProvider.(конструктор)
Создает новый экземпляр класса PhoneAuthProvider
.
Подпись:
constructor(auth: Auth);
Параметры
Параметр | Тип | Описание |
---|---|---|
авторизация | Авторизация | Экземпляр Firebase Auth , в котором должен происходить вход. |
PhoneAuthProvider.PHONE_SIGN_IN_METHOD
Всегда установлено значение SignInMethod. .ТЕЛЕФОН.
Подпись:
static readonly PHONE_SIGN_IN_METHOD: 'phone';
PhoneAuthProvider.PROVIDER_ID
Всегда установлено значение ProviderId. .ТЕЛЕФОН.
Подпись:
static readonly PROVIDER_ID: 'phone';
PhoneAuthProvider.providerId
Всегда установлено значение ProviderId. .ТЕЛЕФОН.
Подпись:
readonly providerId: "phone";
PhoneAuthProvider.credential()
Создает учетные данные для проверки подлинности телефона на основе идентификатора проверки из PhoneAuthProvider.verifyPhoneNumber() и кода, который был отправлен на мобильное устройство пользователя.
Подпись:
static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;
Параметры
Параметр | Тип | Описание |
---|---|---|
идентификатор проверки | нить | Идентификатор проверки, возвращенный из PhoneAuthProvider.verifyPhoneNumber(). . |
проверочный код | нить | Код подтверждения отправлен на мобильное устройство пользователя. |
Возврат:
Учетные данные поставщика аутентификации.
Пример 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;
Параметры
Параметр | Тип | Описание |
---|---|---|
ошибка | FirebaseError | Ошибка при создании учетных данных. |
Возврат:
Авторизация | нулевой
PhoneAuthProvider.credentialFromResult()
Генерирует AuthCredential из UserCredential. .
Подпись:
static credentialFromResult(userCredential: UserCredential): AuthCredential | null;
Параметры
Параметр | Тип | Описание |
---|---|---|
userCredential | Учетные данные пользователя | Учетные данные пользователя. |
Возврат:
Авторизация | нулевой
PhoneAuthProvider.verifyPhoneNumber()
Запускает процесс аутентификации номера телефона, отправляя код подтверждения на указанный номер телефона.
Подпись:
verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;
Параметры
Параметр | Тип | Описание |
---|---|---|
Параметры телефона | ТелефонИнфоОпции | нить | |
applicationVerifier | Верификатор приложения | Для предотвращения злоупотреблений этому методу также требуется ApplicationVerifier. . Этот SDK включает реализацию на основе reCAPTCHA, RecaptchaVerifier. . |
Возврат:
Обещание<строка>
Обещание для идентификатора проверки, который можно передать в PhoneAuthProvider.credential() для идентификации этого потока.
Пример 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);