คุณสามารถใช้การตรวจสอบสิทธิ์ Firebase เพื่อลงชื่อเข้าใช้ผู้ใช้โดยส่งข้อความ SMS ไปยังโทรศัพท์ของผู้ใช้ ผู้ใช้ลงชื่อเข้าใช้ด้วยรหัสแบบใช้ครั้งเดียวที่มีอยู่ในข้อความ SMS
วิธีที่ง่ายที่สุดในการเพิ่มการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ลงในแอปของคุณคือการใช้ FirebaseUI ซึ่งรวมถึงวิดเจ็ตการลงชื่อเข้าใช้แบบดรอปอินที่ใช้ขั้นตอนการลงชื่อเข้าใช้สำหรับการลงชื่อเข้าใช้หมายเลขโทรศัพท์ ตลอดจนการลงชื่อเข้าใช้แบบใช้รหัสผ่านและแบบรวมศูนย์ -ใน. เอกสารนี้อธิบายวิธีใช้ขั้นตอนการลงชื่อเข้าใช้หมายเลขโทรศัพท์โดยใช้ Firebase SDK
ก่อนที่คุณจะเริ่ม
หากคุณยังไม่ได้คัดลอกข้อมูลโค้ดการเริ่มต้นจาก คอนโซล Firebase ไปยังโปรเจ็กต์ของคุณตามที่อธิบายไว้ใน เพิ่ม Firebase ไปยังโปรเจ็กต์ JavaScript ของคุณข้อกังวลด้านความปลอดภัย
การตรวจสอบสิทธิ์โดยใช้เพียงหมายเลขโทรศัพท์ แม้จะสะดวก แต่ก็มีความปลอดภัยน้อยกว่าวิธีอื่นๆ ที่มีอยู่ เนื่องจากการครอบครองหมายเลขโทรศัพท์สามารถถ่ายโอนระหว่างผู้ใช้ได้อย่างง่ายดาย นอกจากนี้ ในอุปกรณ์ที่มีโปรไฟล์ผู้ใช้หลายโปรไฟล์ ผู้ใช้ที่สามารถรับข้อความ SMS จะสามารถลงชื่อเข้าใช้บัญชีโดยใช้หมายเลขโทรศัพท์ของอุปกรณ์ได้
หากคุณใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ในแอป คุณควรนำเสนอควบคู่ไปกับวิธีการลงชื่อเข้าใช้ที่ปลอดภัยยิ่งขึ้น และแจ้งให้ผู้ใช้ทราบถึงข้อดีข้อเสียด้านความปลอดภัยของการใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์
เปิดใช้การลงชื่อเข้าใช้หมายเลขโทรศัพท์สำหรับโปรเจ็กต์ Firebase ของคุณ
หากต้องการลงชื่อเข้าใช้ผู้ใช้ด้วย SMS คุณต้องเปิดใช้วิธีลงชื่อเข้าใช้หมายเลขโทรศัพท์สำหรับโปรเจ็กต์ Firebase ก่อน:
- ใน คอนโซล Firebase ให้เปิดส่วน การตรวจสอบสิทธิ์
- ในหน้า วิธีการลงชื่อเข้า ใช้ ให้เปิดใช้งานวิธีการลงชื่อเข้าใช้ หมายเลขโทรศัพท์
- ในหน้าเดียวกัน หากโดเมนที่จะโฮสต์แอปของคุณไม่อยู่ในส่วน โดเมนการเปลี่ยนเส้นทาง OAuth ให้เพิ่มโดเมนของคุณ
โควต้าคำขอลงชื่อเข้าใช้หมายเลขโทรศัพท์ของ Firebase สูงพอที่จะทำให้แอปส่วนใหญ่ไม่ได้รับผลกระทบ อย่างไรก็ตาม หากคุณต้องการลงชื่อเข้าใช้ผู้ใช้จำนวนมากด้วยการตรวจสอบสิทธิ์ทางโทรศัพท์ คุณอาจต้องอัปเกรดแผนการกำหนดราคาของคุณ ดูหน้า ราคา .
ตั้งค่าเครื่องยืนยัน reCAPTCHA
ก่อนที่คุณจะสามารถลงชื่อเข้าใช้ผู้ใช้ด้วยหมายเลขโทรศัพท์ของตนได้ คุณต้องตั้งค่าเครื่องยืนยัน reCAPTCHA ของ Firebase Firebase ใช้ reCAPTCHA เพื่อป้องกันการละเมิด เช่น โดยการตรวจสอบให้แน่ใจว่าคำขอยืนยันหมายเลขโทรศัพท์มาจากโดเมนที่อนุญาตของแอปของคุณ
คุณไม่จำเป็นต้องตั้งค่าไคลเอ็นต์ reCAPTCHA ด้วยตนเอง เมื่อคุณใช้ออบเจ็กต์ RecaptchaVerifier
ของ Firebase SDK นั้น Firebase จะสร้างและจัดการคีย์ไคลเอ็นต์และข้อมูลลับที่จำเป็นโดยอัตโนมัติ
ออบเจ็กต์ RecaptchaVerifier
รองรับ reCAPTCHA ที่มองไม่เห็น ซึ่งมักจะตรวจสอบผู้ใช้ได้โดยไม่ต้องให้ผู้ใช้ดำเนินการใดๆ เช่นเดียวกับวิดเจ็ต reCAPTCHA ซึ่งต้องมีการโต้ตอบจากผู้ใช้เสมอจึงจะเสร็จสมบูรณ์
reCAPTCHA ที่แสดงผลที่ซ่อนอยู่นั้นสามารถแปลเป็นภาษาท้องถิ่นตามความต้องการของผู้ใช้ได้โดยการอัปเดตรหัสภาษาบนอินสแตนซ์ Auth ก่อนที่จะแสดงผล reCAPTCHA การแปลเป็นภาษาท้องถิ่นดังกล่าวจะนำไปใช้กับข้อความ SMS ที่ส่งถึงผู้ใช้ซึ่งมีรหัสยืนยัน
Web modular API
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web namespaced API
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
ใช้ reCAPTCHA ที่มองไม่เห็น
หากต้องการใช้ reCAPTCHA ที่มองไม่เห็น ให้สร้างออบเจ็กต์ RecaptchaVerifier
โดยตั้งค่าพารามิเตอร์ size
เป็น invisible
โดยระบุ ID ของปุ่มที่ส่งแบบฟอร์มลงชื่อเข้าใช้ของคุณ ตัวอย่างเช่น:
Web modular API
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
Web namespaced API
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
ใช้วิดเจ็ต reCAPTCHA
หากต้องการใช้วิดเจ็ต reCAPTCHA ที่มองเห็นได้ ให้สร้างองค์ประกอบบนเพจของคุณเพื่อให้มีวิดเจ็ต จากนั้นสร้างออบเจ็กต์ RecaptchaVerifier
โดยระบุ ID ของคอนเทนเนอร์เมื่อคุณทำเช่นนั้น ตัวอย่างเช่น:
Web modular API
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {});
Web namespaced API
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
ทางเลือก: ระบุพารามิเตอร์ reCAPTCHA
คุณสามารถเลือกตั้งค่าฟังก์ชันการโทรกลับบนออบเจ็กต์ RecaptchaVerifier
ที่ถูกเรียกเมื่อผู้ใช้แก้ไข reCAPTCHA หรือ reCAPTCHA หมดอายุก่อนที่ผู้ใช้จะส่งแบบฟอร์ม:
Web modular API
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', { 'size': 'normal', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. // ... }, 'expired-callback': () => { // Response expired. Ask user to solve reCAPTCHA again. // ... } });
Web namespaced API
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container', { 'size': 'normal', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. // ... }, 'expired-callback': () => { // Response expired. Ask user to solve reCAPTCHA again. // ... } });
ไม่บังคับ: แสดงผล reCAPTCHA ล่วงหน้า
หากคุณต้องการแสดงผล reCAPTCHA ล่วงหน้าก่อนที่คุณจะส่งคำขอลงชื่อเข้าใช้ ให้เรียกใช้ render
:
Web modular API
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
Web namespaced API
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
หลังจาก render
การเรนเดอร์แล้ว คุณจะได้รับรหัสวิดเจ็ตของ reCAPTCHA ซึ่งคุณสามารถใช้เรียก reCAPTCHA API ได้:
Web modular API
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
Web namespaced API
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
ส่งรหัสยืนยันไปยังโทรศัพท์ของผู้ใช้
หากต้องการเริ่มต้นการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ ให้นำเสนออินเทอร์เฟซแก่ผู้ใช้ที่แจ้งให้ระบุหมายเลขโทรศัพท์ จากนั้นโทรหา signInWithPhoneNumber
เพื่อขอให้ Firebase ส่งรหัสการตรวจสอบสิทธิ์ไปยังโทรศัพท์ของผู้ใช้ทาง SMS:
รับหมายเลขโทรศัพท์ของผู้ใช้
ข้อกำหนดทางกฎหมายจะแตกต่างกันไป แต่เพื่อเป็นแนวทางปฏิบัติที่ดีที่สุดและเพื่อกำหนดความคาดหวังสำหรับผู้ใช้ของคุณ คุณควรแจ้งให้พวกเขาทราบว่าหากพวกเขาใช้การลงชื่อเข้าใช้ทางโทรศัพท์ พวกเขาอาจได้รับข้อความ SMS สำหรับการตรวจสอบและใช้อัตรามาตรฐาน
- Call
signInWithPhoneNumber
โดยส่งหมายเลขโทรศัพท์ของผู้ใช้และRecaptchaVerifier
ที่คุณสร้างไว้ก่อนหน้านี้ไปให้หากWeb modular API
import { getAuth, signInWithPhoneNumber } from "firebase/auth"; const phoneNumber = getPhoneNumberFromUserInput(); const appVerifier = window.recaptchaVerifier; const auth = getAuth(); signInWithPhoneNumber(auth, phoneNumber, appVerifier) .then((confirmationResult) => { // SMS sent. Prompt user to type the code from the message, then sign the // user in with confirmationResult.confirm(code). window.confirmationResult = confirmationResult; // ... }).catch((error) => { // Error; SMS not sent // ... });
Web namespaced API
const phoneNumber = getPhoneNumberFromUserInput(); const appVerifier = window.recaptchaVerifier; firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier) .then((confirmationResult) => { // SMS sent. Prompt user to type the code from the message, then sign the // user in with confirmationResult.confirm(code). window.confirmationResult = confirmationResult; // ... }).catch((error) => { // Error; SMS not sent // ... });
signInWithPhoneNumber
ส่งผลให้เกิดข้อผิดพลาด ให้รีเซ็ต reCAPTCHA เพื่อให้ผู้ใช้สามารถลองอีกครั้ง:grecaptcha.reset(window.recaptchaWidgetId); // Or, if you haven't stored the widget ID: window.recaptchaVerifier.render().then(function(widgetId) { grecaptcha.reset(widgetId); });
เมธอด signInWithPhoneNumber
จะส่งคำถาม reCAPTCHA ให้กับผู้ใช้ และหากผู้ใช้ผ่านการท้าทาย จะขอให้ Firebase Authentication ส่งข้อความ SMS ที่มีรหัสยืนยันไปยังโทรศัพท์ของผู้ใช้
ลงชื่อเข้าใช้ผู้ใช้ด้วยรหัสยืนยัน
หลังจากการเรียกเพื่อ signInWithPhoneNumber
สำเร็จ ให้ผู้ใช้พิมพ์รหัสยืนยันที่ได้รับทาง SMS จากนั้น ลงชื่อเข้าใช้ผู้ใช้โดยการส่งรหัสไปยังวิธี confirm
ของออบเจ็กต์ ConfirmationResult
ที่ถูกส่งผ่านไปยังตัวจัดการการเติมเต็มของ signInWithPhoneNumber
(นั่นคือ จากนั้น then
บล็อก) ตัวอย่างเช่น:
Web modular API
const code = getCodeFromUserInput(); confirmationResult.confirm(code).then((result) => { // User signed in successfully. const user = result.user; // ... }).catch((error) => { // User couldn't sign in (bad verification code?) // ... });
Web namespaced API
const code = getCodeFromUserInput(); confirmationResult.confirm(code).then((result) => { // User signed in successfully. const user = result.user; // ... }).catch((error) => { // User couldn't sign in (bad verification code?) // ... });
หากการโทรเพื่อ confirm
สำเร็จ แสดงว่าผู้ใช้ลงชื่อเข้าใช้สำเร็จ
รับวัตถุ AuthCredential ระดับกลาง
หากคุณต้องการรับออบเจ็กต์ AuthCredential
สำหรับบัญชีผู้ใช้ ให้ส่งรหัสยืนยันจากผลการยืนยันและรหัสยืนยันไปที่ PhoneAuthProvider.credential
แทนที่จะโทร confirm
:
var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);
จากนั้น คุณสามารถลงชื่อเข้าใช้ผู้ใช้ด้วยข้อมูลรับรอง:
firebase.auth().signInWithCredential(credential);
ทดสอบด้วยหมายเลขโทรศัพท์สมมติ
คุณสามารถตั้งค่าหมายเลขโทรศัพท์สมมติสำหรับการพัฒนาผ่านคอนโซล Firebase การทดสอบด้วยหมายเลขโทรศัพท์สมมติให้ประโยชน์เหล่านี้:
- ทดสอบการรับรองความถูกต้องหมายเลขโทรศัพท์โดยไม่ต้องใช้โควต้าการใช้งานของคุณ
- ทดสอบการตรวจสอบหมายเลขโทรศัพท์โดยไม่ต้องส่งข้อความ SMS จริง
- ทำการทดสอบติดต่อกันด้วยหมายเลขโทรศัพท์เดียวกันโดยไม่ถูกควบคุมปริมาณ ซึ่งจะช่วยลดความเสี่ยงที่จะถูกปฏิเสธในระหว่างกระบวนการตรวจสอบ App Store หากผู้ตรวจสอบบังเอิญใช้หมายเลขโทรศัพท์เดียวกันในการทดสอบ
- ทดสอบพร้อมในสภาพแวดล้อมการพัฒนาโดยไม่ต้องใช้ความพยายามเพิ่มเติม เช่น ความสามารถในการพัฒนาในโปรแกรมจำลอง iOS หรือโปรแกรมจำลอง Android โดยไม่ต้องใช้บริการ Google Play
- เขียนการทดสอบการรวมระบบโดยไม่ถูกบล็อกโดยการตรวจสอบความปลอดภัยที่ปกติใช้กับหมายเลขโทรศัพท์จริงในสภาพแวดล้อมการใช้งานจริง
หมายเลขโทรศัพท์ปลอมต้องเป็นไปตามข้อกำหนดเหล่านี้:
- ตรวจสอบให้แน่ใจว่าคุณใช้หมายเลขโทรศัพท์ที่สมมติขึ้นมาจริงๆ และไม่มีอยู่จริง การตรวจสอบสิทธิ์ Firebase ไม่อนุญาตให้คุณตั้งค่าหมายเลขโทรศัพท์ที่มีอยู่ซึ่งผู้ใช้จริงใช้เป็นหมายเลขทดสอบ ทางเลือกหนึ่งคือใช้หมายเลขนำหน้า 555 เป็นหมายเลขโทรศัพท์ทดสอบของสหรัฐอเมริกา เช่น +1 650-555-3434
- หมายเลขโทรศัพท์ต้องมีรูปแบบที่ถูกต้องสำหรับความยาวและข้อจำกัดอื่นๆ พวกเขาจะยังคงผ่านการตรวจสอบเช่นเดียวกับหมายเลขโทรศัพท์ของผู้ใช้จริง
- คุณสามารถเพิ่มหมายเลขโทรศัพท์เพื่อการพัฒนาได้สูงสุด 10 หมายเลข
- ใช้หมายเลขโทรศัพท์/รหัสทดสอบที่เดายากและเปลี่ยนบ่อยๆ
สร้างหมายเลขโทรศัพท์และรหัสยืนยันสมมติ
- ใน คอนโซล Firebase ให้เปิดส่วน การตรวจสอบสิทธิ์
- ในแท็บ วิธีการลงชื่อเข้า ใช้ ให้เปิดใช้งานผู้ให้บริการโทรศัพท์ หากคุณยังไม่ได้เปิดใช้งาน
- เปิด หมายเลขโทรศัพท์เพื่อทดสอบ เมนูหีบเพลง
- ระบุหมายเลขโทรศัพท์ที่คุณต้องการทดสอบ เช่น +1 650-555-3434
- ระบุรหัสยืนยัน 6 หลักสำหรับหมายเลขนั้น เช่น 654321
- เพิ่ม หมายเลข หากจำเป็น คุณสามารถลบหมายเลขโทรศัพท์และรหัสได้โดยวางเมาส์เหนือแถวที่เกี่ยวข้องแล้วคลิกไอคอนถังขยะ
การทดสอบด้วยตนเอง
คุณสามารถเริ่มใช้หมายเลขโทรศัพท์สมมติในใบสมัครของคุณได้โดยตรง วิธีนี้ช่วยให้คุณทำการทดสอบด้วยตนเองในระหว่างขั้นตอนการพัฒนาได้โดยไม่มีปัญหาเรื่องโควต้าหรือการควบคุมปริมาณ คุณยังสามารถทดสอบได้โดยตรงจากเครื่องจำลอง iOS หรือเครื่องจำลอง Android โดยไม่ต้องติดตั้งบริการ Google Play
เมื่อคุณระบุหมายเลขโทรศัพท์สมมติและส่งรหัสยืนยัน จะไม่มีการส่ง SMS จริง แต่คุณจะต้องระบุรหัสยืนยันที่กำหนดค่าไว้ก่อนหน้านี้แทนเพื่อลงชื่อเข้าใช้ให้เสร็จสมบูรณ์
เมื่อลงชื่อเข้าใช้เสร็จแล้ว ผู้ใช้ Firebase จะถูกสร้างขึ้นด้วยหมายเลขโทรศัพท์นั้น ผู้ใช้มีพฤติกรรมและคุณสมบัติเหมือนกับผู้ใช้หมายเลขโทรศัพท์จริง และสามารถเข้าถึง Realtime Database/Cloud Firestore และบริการอื่นๆ ได้ในลักษณะเดียวกัน โทเค็น ID ที่สร้างขึ้นในระหว่างกระบวนการนี้มีลายเซ็นเดียวกับผู้ใช้หมายเลขโทรศัพท์จริง
อีกทางเลือกหนึ่งคือ การตั้งค่าบทบาทการทดสอบผ่านการอ้างสิทธิ์ที่กำหนดเอง กับผู้ใช้เหล่านี้ เพื่อแยกความแตกต่างว่าเป็นผู้ใช้ปลอม หากคุณต้องการจำกัดการเข้าถึงเพิ่มเติม
การทดสอบบูรณาการ
นอกเหนือจากการทดสอบด้วยตนเองแล้ว การตรวจสอบสิทธิ์ Firebase ยังมี API เพื่อช่วยเขียนการทดสอบการรวมสำหรับการทดสอบการตรวจสอบสิทธิ์ทางโทรศัพท์ API เหล่านี้ปิดใช้การตรวจสอบแอปโดยปิดใช้ข้อกำหนด reCAPTCHA ในเว็บและการแจ้งเตือนแบบพุชใน iOS ซึ่งทำให้การทดสอบอัตโนมัติเป็นไปได้ในโฟลว์เหล่านี้และนำไปใช้งานได้ง่ายขึ้น นอกจากนี้ยังช่วยให้สามารถทดสอบขั้นตอนการยืนยันได้ทันทีบน Android
บนเว็บ ให้ตั้งค่า appVerificationDisabledForTesting
เป็น true
ก่อนที่จะเรนเดอร์ firebase.auth.RecaptchaVerifier
การดำเนินการนี้จะแก้ไข reCAPTCHA โดยอัตโนมัติ ทำให้คุณสามารถส่งหมายเลขโทรศัพท์ได้โดยไม่ต้องแก้ไขด้วยตนเอง โปรดทราบว่าแม้ว่า reCAPTCHA จะถูกปิดใช้งาน แต่การใช้หมายเลขโทรศัพท์ที่ไม่ใช่สมมติจะยังคงล้มเหลวในการลงชื่อเข้าใช้ API นี้สามารถใช้ได้เฉพาะหมายเลขโทรศัพท์สมมติเท่านั้น
// Turn off phone auth app verification. firebase.auth().settings.appVerificationDisabledForTesting = true; var phoneNumber = "+16505554567"; var testVerificationCode = "123456"; // This will render a fake reCAPTCHA as appVerificationDisabledForTesting is true. // This will resolve after rendering without app verification. var appVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container'); // signInWithPhoneNumber will call appVerifier.verify() which will resolve with a fake // reCAPTCHA response. firebase.auth().signInWithPhoneNumber(phoneNumber, appVerifier) .then(function (confirmationResult) { // confirmationResult can resolve with the fictional testVerificationCode above. return confirmationResult.confirm(testVerificationCode) }).catch(function (error) { // Error; SMS not sent // ... });
ตัวตรวจสอบแอป reCAPTCHA จำลองที่มองเห็นได้และมองไม่เห็นจะมีพฤติกรรมแตกต่างออกไปเมื่อปิดใช้การยืนยันแอป:
- reCAPTCHA ที่มองเห็นได้ : เมื่อ reCAPTCHA ที่มองเห็นถูกเรนเดอร์ผ่าน
appVerifier.render()
reCAPTCHA ที่มองเห็นได้จะแก้ไขตัวเองโดยอัตโนมัติหลังจากหน่วงเวลาเสี้ยววินาที ซึ่งเทียบเท่ากับการที่ผู้ใช้คลิก reCAPTCHA ทันทีที่แสดงผล การตอบสนอง reCAPTCHA จะหมดอายุหลังจากผ่านไประยะหนึ่ง จากนั้นจึงแก้ไขอัตโนมัติอีกครั้ง - reCAPTCHA ที่มองไม่เห็น : reCAPTCHA ที่มองไม่เห็นไม่ได้แก้ไขโดยอัตโนมัติในการแสดงผล แต่จะทำเช่นนั้นในการเรียก
appVerifier.verify()
หรือเมื่อมีการคลิกจุดยึดปุ่มของ reCAPTCHA หลังจากการหน่วงเวลาเสี้ยววินาที ในทำนองเดียวกัน การตอบกลับจะหมดอายุหลังจากผ่านไประยะหนึ่ง และจะแก้ไขอัตโนมัติหลังจากการเรียกappVerifier.verify()
หรือเมื่อมีการคลิกจุดยึดปุ่มของ reCAPTCHA อีกครั้งเท่านั้น
เมื่อใดก็ตามที่แก้ไข reCAPTCHA จำลองได้ ฟังก์ชันการโทรกลับที่เกี่ยวข้องจะถูกทริกเกอร์ตามที่คาดไว้ด้วยการตอบกลับปลอม หากมีการระบุการโทรกลับการหมดอายุด้วย การโทรกลับจะทริกเกอร์เมื่อหมดอายุ
ขั้นตอนถัดไป
หลังจากที่ผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรก บัญชีผู้ใช้ใหม่จะถูกสร้างขึ้นและเชื่อมโยงกับข้อมูลประจำตัว ซึ่งได้แก่ ชื่อผู้ใช้และรหัสผ่าน หมายเลขโทรศัพท์ หรือข้อมูลผู้ให้บริการรับรองความถูกต้อง ซึ่งผู้ใช้ลงชื่อเข้าใช้ด้วย บัญชีใหม่นี้จัดเก็บไว้เป็นส่วนหนึ่งของโปรเจ็กต์ Firebase ของคุณ และสามารถใช้เพื่อระบุผู้ใช้ในทุกแอปในโปรเจ็กต์ของคุณ ไม่ว่าผู้ใช้จะลงชื่อเข้าใช้ด้วยวิธีใดก็ตาม
ในแอปของคุณ วิธีที่แนะนำในการทราบสถานะการตรวจสอบสิทธิ์ของผู้ใช้คือการตั้งค่าผู้สังเกตการณ์บนออบเจ็
Auth
จากนั้น คุณสามารถรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ได้จากออบเจ็กต์User
ดู จัดการผู้ใช้ในฐานข้อมูลเรียลไทม์ Firebase และ กฎความปลอดภัยของ พื้นที่เก็บข้อมูลบนคลาวด์ คุณสามารถรับ ID ผู้ใช้เฉพาะของผู้ใช้ที่ลงชื่อเข้าใช้จากตัวแปร
auth
และใช้เพื่อควบคุมข้อมูลที่ผู้ใช้สามารถเข้าถึงได้
คุณสามารถอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้แอปของคุณโดยใช้ผู้ให้บริการตรวจสอบสิทธิ์หลายรายได้โดย การเชื่อมโยงข้อมูลประจำตัวของผู้ให้บริการตรวจสอบสิทธิ์กับบัญชีผู้ใช้ที่มีอยู่
หากต้องการออกจากระบบผู้ใช้ ให้โทร signOut
:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });