ارائه دهنده برای تولید PhoneAuthCredential .
PhoneAuthProvider
در محیط Node.js کار نمی کند.
امضا:
export declare class PhoneAuthProvider
سازندگان
سازنده | اصلاح کننده ها | شرح |
---|---|---|
(سازنده) (auth) | یک نمونه جدید از کلاس PhoneAuthProvider می سازد |
خواص
ویژگی | اصلاح کننده ها | تایپ کنید | شرح |
---|---|---|---|
PHONE_SIGN_IN_METHOD | static | 'تلفن' | همیشه روی SignInMethod تنظیم کنید .تلفن. |
PROVIDER_ID | static | 'تلفن' | همیشه روی ProviderId تنظیم شود .تلفن. |
شناسه ارائه دهنده | "تلفن" | همیشه روی ProviderId تنظیم شود .تلفن. |
مواد و روش ها
روش | اصلاح کننده ها | شرح |
---|---|---|
اعتبار (شناسه تأیید، کد تأیید) | static | با توجه به شناسه تأیید از PhoneAuthProvider.verifyPhoneNumber() و کدی که به دستگاه تلفن همراه کاربر ارسال شده است، یک اعتبار تأیید اعتبار تلفن ایجاد می کند. |
credentialFromError (خطا) | static | هنگامی که یک خطا ارسال می شود یک AuthCredential را برمی گرداند. |
credentialFromResult(userCredential) | static | یک اعتبار اعتبار از یک 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 | خطای ایجاد اعتبار از. |
برمی گرداند:
AuthCredential | خالی
PhoneAuthProvider.credentialFromResult()
یک اعتبار اعتبار از یک UserCredential ایجاد می کند .
امضا:
static credentialFromResult(userCredential: UserCredential): AuthCredential | null;
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
اعتبار کاربری | اعتبار کاربری | اعتبار کاربری |
برمی گرداند:
AuthCredential | خالی
PhoneAuthProvider.verifyPhoneNumber()
یک جریان احراز هویت شماره تلفن را با ارسال یک کد تأیید به شماره تلفن داده شده شروع می کند.
امضا:
verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;
مولفه های
پارامتر | تایپ کنید | شرح |
---|---|---|
گزینه های تلفن | PhoneInfoOptions | رشته | |
applicationVerifier | 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);