Nhà cung cấp dùng để tạo PhoneAuthCredential.
PhoneAuthProvider
không hoạt động trong môi trường Node.js.
Chữ ký:
export declare class PhoneAuthProvider
Công ty sản xuất
Công ty sản xuất | Công cụ sửa đổi | Mô tả |
---|---|---|
(hàm khởi tạo)(auth) | Tạo một thực thể mới của lớp PhoneAuthProvider |
Thuộc tính
Tài sản | Công cụ sửa đổi | Loại | Mô tả |
---|---|---|---|
PHONE_SIGN_IN_METHOD | static |
"phone" | Luôn đặt thành SignInMethod.PHONE. |
PROVIDER_ID | static |
"phone" | Luôn đặt thành ProviderId.PHONE. |
Mã nhà cung cấp | "điện thoại" | Luôn đặt thành ProviderId.PHONE. |
Phương thức
Phương thức | Công cụ sửa đổi | Mô tả |
---|---|---|
thông tin xác thực(verificationId, Mã xác minh) | static |
Tạo thông tin xác thực điện thoại, dựa trên mã xác minh từ PhoneAuthProvider.verifyPhoneNumber() và mã được gửi đến thiết bị di động của người dùng. |
credentialFromError(lỗi) | static |
Trả về AuthCredential khi vượt qua lỗi. |
credentialFromResult(userCredential) | static |
Tạo AuthCredential từ UserCredential. |
verifyPhoneNumber(phoneOptions, applicationVerifier) | Bắt đầu quy trình xác thực số điện thoại bằng cách gửi mã xác minh đến số điện thoại đã cho. |
PhoneAuthProvider.(hàm khởi tạo)
Tạo một thực thể mới của lớp PhoneAuthProvider
Chữ ký:
constructor(auth: Auth);
Thông số
Thông số | Loại | Mô tả |
---|---|---|
xác thực | Xác thực | Thực thể Xác thực Firebase mà hoạt động đăng nhập sẽ diễn ra. |
PhoneAuthProvider.PHONE_SIGN_IN_METHOD
Luôn đặt thành SignInMethod.PHONE.
Chữ ký:
static readonly PHONE_SIGN_IN_METHOD: 'phone';
PhoneAuthProvider.PROVIDER_ID
Luôn đặt thành ProviderId.PHONE.
Chữ ký:
static readonly PROVIDER_ID: 'phone';
Mã số điện thoại PhoneAuthProvider.providerId
Luôn đặt thành ProviderId.PHONE.
Chữ ký:
readonly providerId: "phone";
PhoneAuthProvider.credential()
Tạo thông tin xác thực điện thoại, dựa trên mã xác minh từ PhoneAuthProvider.verifyPhoneNumber() và mã được gửi đến thiết bị di động của người dùng.
Chữ ký:
static credential(verificationId: string, verificationCode: string): PhoneAuthCredential;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
mã xác minh | chuỗi | Mã xác minh được trả về từ PhoneAuthProvider.verifyPhoneNumber(). |
mã xác minh | chuỗi | Mã xác minh được gửi đến thiết bị di động của người dùng. |
Trường hợp trả lại hàng:
Thông tin đăng nhập của nhà cung cấp dịch vụ xác thực.
Ví dụ 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);
Ví dụ 2
Một quy trình thay thế sẽ được cung cấp bằng phương thức signInWithPhoneNumber
.
const confirmationResult = await signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = await confirmationResult.confirm(verificationCode);
PhoneAuthProvider.credentialFromError()
Trả về AuthCredential khi vượt qua lỗi.
Phương thức này dùng được cho các lỗi như auth/account-exists-with-different-credentials
. Điều này rất hữu ích cho việc khôi phục khi cố gắng đặt số điện thoại của người dùng nhưng số điện thoại đang đề cập đã được liên kết với một tài khoản khác. Ví dụ: Mã sau đây cố gắng cập nhật số điện thoại của người dùng hiện tại và nếu không thành công, hãy liên kết người dùng với tài khoản được liên kết với số điện thoại đó:
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.
Chữ ký:
static credentialFromError(error: FirebaseError): AuthCredential | null;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
error | Lỗi Firebase | Lỗi khi tạo thông tin xác thực. |
Trường hợp trả lại hàng:
AuthCredential | rỗng
PhoneAuthProvider.credentialFromResult()
Tạo AuthCredential từ UserCredential.
Chữ ký:
static credentialFromResult(userCredential: UserCredential): AuthCredential | null;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
thông tin xác thực người dùng | Thông tin đăng nhập của người dùng | Thông tin đăng nhập của người dùng. |
Trường hợp trả lại hàng:
AuthCredential | rỗng
PhoneAuthProvider.verifyPhoneNumber()
Bắt đầu quy trình xác thực số điện thoại bằng cách gửi mã xác minh đến số điện thoại đã cho.
Chữ ký:
verifyPhoneNumber(phoneOptions: PhoneInfoOptions | string, applicationVerifier: ApplicationVerifier): Promise<string>;
Thông số
Thông số | Loại | Mô tả |
---|---|---|
Tùy chọn điện thoại | PhoneInfoOptions | chuỗi | |
applicationVerifier | ApplicationVerifier | Để ngăn chặn hành vi sai trái, phương pháp này cũng yêu cầu phải có ApplicationVerifier. SDK này bao gồm một phương thức triển khai dựa trên reCAPTCHA, ReCAPTCHAVerifier. |
Trường hợp trả lại hàng:
Cam kết<string>
Lời hứa cho mã xác minh có thể được chuyển đến PhoneAuthProvider.credential() để xác định quy trình này.
Ví dụ 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);
Ví dụ 2
Một quy trình thay thế sẽ được cung cấp bằng phương thức signInWithPhoneNumber
.
const confirmationResult = signInWithPhoneNumber(auth, phoneNumber, applicationVerifier);
// Obtain verificationCode from the user.
const userCredential = confirmationResult.confirm(verificationCode);
Ví dụ
// '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);