คุณสามารถใช้ Firebase Authentication เพื่อลงชื่อเข้าใช้ผู้ใช้ได้โดยส่งข้อความ SMS ไปยังโทรศัพท์ของผู้ใช้ ผู้ใช้ลงชื่อเข้าใช้โดยใช้รหัสแบบครั้งเดียวที่อยู่ในข้อความ SMS
วิธีที่ง่ายที่สุดในการเพิ่มการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ลงในแอปคือการใช้ FirebaseUI ซึ่งมีวิดเจ็ตการลงชื่อเข้าใช้แบบติดตั้งใช้งานทันทีที่ใช้โฟลว์การลงชื่อเข้าใช้สำหรับการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ รวมถึงการลงชื่อเข้าใช้ด้วยรหัสผ่านและการลงชื่อเข้าใช้แบบรวมศูนย์ เอกสารนี้อธิบายวิธีใช้ขั้นตอนการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์โดยใช้ Firebase SDK
ก่อนเริ่มต้น
หากยังไม่ได้ทำ ให้คัดลอกข้อมูลโค้ดเริ่มต้นจากFirebaseคอนโซลไปยังโปรเจ็กต์ตามที่อธิบายไว้ใน เพิ่ม Firebase ลงในโปรเจ็กต์ JavaScriptข้อกังวลด้านความปลอดภัย
แม้ว่าการตรวจสอบสิทธิ์โดยใช้หมายเลขโทรศัพท์เพียงอย่างเดียวจะสะดวก แต่ก็มีความปลอดภัยน้อยกว่าวิธีอื่นๆ เนื่องจากผู้ใช้สามารถโอนหมายเลขโทรศัพท์ให้กันได้ง่ายๆ นอกจากนี้ ในอุปกรณ์ที่มีโปรไฟล์ผู้ใช้หลายโปรไฟล์ ผู้ใช้ทุกคนที่รับข้อความ SMS ได้จะลงชื่อเข้าใช้บัญชีได้โดยใช้หมายเลขโทรศัพท์ของอุปกรณ์
หากคุณใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ในแอป คุณควรเสนอวิธีการนี้ควบคู่ไปกับวิธีการลงชื่อเข้าใช้ที่ปลอดภัยกว่า และแจ้งให้ผู้ใช้ทราบถึงข้อดีข้อเสียด้านความปลอดภัยของการใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์
เปิดใช้การลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์สําหรับโปรเจ็กต์ Firebase
หากต้องการลงชื่อเข้าใช้ผู้ใช้ด้วย SMS คุณต้องเปิดใช้วิธีการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์สําหรับโปรเจ็กต์ Firebase ก่อน โดยทำดังนี้
- ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์
- ในหน้าวิธีการลงชื่อเข้าใช้ ให้เปิดใช้วิธีการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์
- ในหน้าเดียวกันนี้ หากโดเมนที่จะโฮสต์แอปของคุณไม่แสดงอยู่ในส่วนโดเมนการเปลี่ยนเส้นทาง OAuth ให้เพิ่มโดเมน โปรดทราบว่าระบบไม่อนุญาตให้ใช้ localhost เป็นโดเมนที่โฮสต์เพื่อการรับรองทางโทรศัพท์
ตั้งค่าโปรแกรมตรวจสอบ reCAPTCHA
คุณต้องตั้งค่าโปรแกรมตรวจสอบ reCAPTCHA ของ Firebase ก่อนจึงจะลงชื่อเข้าใช้ผู้ใช้ด้วยหมายเลขโทรศัพท์ได้ Firebase ใช้ reCAPTCHA เพื่อป้องกันไม่ให้มีการละเมิด เช่น โดยการตรวจสอบว่าคำขอยืนยันหมายเลขโทรศัพท์มาจากโดเมนที่อนุญาตของแอป
คุณไม่จำเป็นต้องตั้งค่าไคลเอ็นต์ reCAPTCHA ด้วยตนเอง เมื่อคุณใช้ออบเจ็กต์ RecaptchaVerifier
ของ Firebase SDK ทาง Firebase จะสร้างและจัดการคีย์และข้อมูลลับที่จำเป็นสำหรับไคลเอ็นต์โดยอัตโนมัติ
ออบเจ็กต์ RecaptchaVerifier
รองรับ reCAPTCHA แบบมองไม่เห็น ซึ่งมักจะยืนยันผู้ใช้ได้โดยไม่ต้องให้ผู้ใช้ดำเนินการใดๆ รวมถึงวิดเจ็ต reCAPTCHA ซึ่งต้องใช้การโต้ตอบของผู้ใช้เสมอจึงจะดำเนินการเสร็จสมบูรณ์ได้
reCAPTCHA ที่แสดงผลอยู่เบื้องหลังสามารถแปลเป็นภาษาที่ผู้ใช้ต้องการได้โดยอัปเดตรหัสภาษาในอินสแตนซ์ Auth ก่อนแสดงผล reCAPTCHA การแปลภาษาข้างต้นจะมีผลกับข้อความ SMS ที่ส่งไปยังผู้ใช้ซึ่งมีรหัสยืนยันด้วย
Web
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
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
ใช้ reCAPTCHA ที่ไม่แสดง
หากต้องการใช้ reCAPTCHA ที่ไม่แสดง ให้สร้างออบเจ็กต์ RecaptchaVerifier
โดยตั้งค่าพารามิเตอร์ size
เป็น invisible
พร้อมระบุรหัสของปุ่มที่ส่งแบบฟอร์มการลงชื่อเข้าใช้ เช่น
Web
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
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('sign-in-button', { 'size': 'invisible', 'callback': (response) => { // reCAPTCHA solved, allow signInWithPhoneNumber. onSignInSubmit(); } });
ใช้วิดเจ็ต reCAPTCHA
หากต้องการใช้วิดเจ็ต reCAPTCHA ที่มองเห็นได้ ให้สร้างองค์ประกอบในหน้าเว็บเพื่อบรรจุวิดเจ็ต แล้วสร้างออบเจ็กต์ RecaptchaVerifier
โดยระบุรหัสของคอนเทนเนอร์เมื่อสร้าง
Web
import { getAuth, RecaptchaVerifier } from "firebase/auth"; const auth = getAuth(); window.recaptchaVerifier = new RecaptchaVerifier(auth, 'recaptcha-container', {});
Web
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('recaptcha-container');
ไม่บังคับ: ระบุพารามิเตอร์ reCAPTCHA
คุณเลือกที่จะตั้งค่าฟังก์ชันการเรียกกลับในออบเจ็กต์ RecaptchaVerifier
ที่เรียกใช้เมื่อผู้ใช้ไข reCAPTCHA หรือ reCAPTCHA หมดอายุก่อนที่ผู้ใช้จะส่งแบบฟอร์มได้ ดังนี้
Web
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
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
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
Web
recaptchaVerifier.render().then((widgetId) => { window.recaptchaWidgetId = widgetId; });
หลังจาก render
ได้รับการแก้ไขแล้ว คุณจะได้รับรหัสวิดเจ็ตของ reCAPTCHA ซึ่งคุณใช้เรียกใช้ reCAPTCHA API ได้ ดังนี้
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
Web
const recaptchaResponse = grecaptcha.getResponse(recaptchaWidgetId);
ส่งรหัสยืนยันไปยังโทรศัพท์ของผู้ใช้
หากต้องการเริ่มการลงชื่อเข้าใช้ด้วยหมายเลขโทรศัพท์ ให้แสดงอินเทอร์เฟซที่แจ้งให้ผู้ใช้ป้อนหมายเลขโทรศัพท์ จากนั้นโทรไปที่ signInWithPhoneNumber
เพื่อขอให้ Firebase ส่งรหัสการตรวจสอบสิทธิ์ไปยังโทรศัพท์ของผู้ใช้ทาง SMS โดยทำดังนี้
-
รับหมายเลขโทรศัพท์ของผู้ใช้
ข้อกำหนดทางกฎหมายแตกต่างกันไป แต่แนวทางปฏิบัติแนะนำและเพื่อกำหนดความคาดหวังให้กับผู้ใช้ คุณควรแจ้งให้ผู้ใช้ทราบว่าหากใช้การลงชื่อเข้าใช้ด้วยโทรศัพท์ ผู้ใช้อาจได้รับข้อความ SMS สำหรับการยืนยันและอาจมีค่าบริการตามมาตรฐาน
- โทรหา
signInWithPhoneNumber
โดยส่งหมายเลขโทรศัพท์ของผู้ใช้และRecaptchaVerifier
ที่คุณสร้างขึ้นก่อนหน้านี้Web
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
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
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
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 Authentication ไม่อนุญาตให้คุณตั้งค่าหมายเลขโทรศัพท์ที่มีอยู่ซึ่งผู้ใช้จริงใช้อยู่เป็นหมายเลขทดสอบ ตัวเลือกหนึ่งคือการใช้หมายเลขนำหน้า 555 เป็นหมายเลขโทรศัพท์ทดสอบของสหรัฐอเมริกา เช่น +1 650-555-3434
- หมายเลขโทรศัพท์ต้องอยู่ในรูปแบบที่ถูกต้องตามความยาวและข้อจำกัดอื่นๆ หมายเลขดังกล่าวจะยังคงต้องผ่านการตรวจสอบเช่นเดียวกับหมายเลขโทรศัพท์ของผู้ใช้จริง
- คุณเพิ่มหมายเลขโทรศัพท์เพื่อใช้ในการพัฒนาได้สูงสุด 10 หมายเลข
- ใช้หมายเลขโทรศัพท์/รหัสทดสอบที่คาดเดาได้ยากและเปลี่ยนรหัสเหล่านั้นบ่อยๆ
สร้างหมายเลขโทรศัพท์และรหัสยืนยันสมมติ
- ในคอนโซล Firebase ให้เปิดส่วนการตรวจสอบสิทธิ์
- ในแท็บวิธีการลงชื่อเข้าใช้ ให้เปิดใช้ผู้ให้บริการโทรศัพท์ หากยังไม่ได้ดำเนินการ
- เปิดเมนูแบบแอคคอร์เดียนหมายเลขโทรศัพท์สําหรับการทดสอบ
- ระบุหมายเลขโทรศัพท์ที่ต้องการทดสอบ เช่น +1 650-555-3434
- ระบุรหัสยืนยัน 6 หลักของหมายเลขนั้น เช่น 654321
- เพิ่มหมายเลข หากจำเป็น คุณสามารถลบหมายเลขโทรศัพท์และรหัสได้โดยวางเมาส์เหนือแถวที่เกี่ยวข้องแล้วคลิกไอคอนถังขยะ
การทดสอบด้วยตนเอง
คุณเริ่มใช้หมายเลขโทรศัพท์สมมติในแอปพลิเคชันของคุณได้โดยตรง ซึ่งจะช่วยให้คุณทำการทดสอบด้วยตนเองได้ในระหว่างระยะการพัฒนาโดยไม่ต้องกังวลเรื่องโควต้าหรือการควบคุม นอกจากนี้ คุณยังทดสอบจากโปรแกรมจำลอง iOS หรือโปรแกรมจำลอง Android ได้โดยตรงโดยไม่ต้องติดตั้งบริการ Google Play
เมื่อคุณระบุหมายเลขโทรศัพท์สมมติและส่งรหัสยืนยัน ระบบจะไม่ส่ง SMS จริง แต่คุณต้องระบุรหัสยืนยันที่กําหนดค่าไว้ก่อนหน้านี้เพื่อลงชื่อเข้าใช้ให้เสร็จสมบูรณ์
เมื่อลงชื่อเข้าใช้เสร็จแล้ว ระบบจะสร้างผู้ใช้ Firebase ด้วยหมายเลขโทรศัพท์ดังกล่าว ผู้ใช้จะมีลักษณะการทำงานและพร็อพเพอร์ตี้เหมือนกับผู้ใช้หมายเลขโทรศัพท์จริง และสามารถเข้าถึง Realtime Database/Cloud Firestore และบริการอื่นๆ ในลักษณะเดียวกัน โทเค็นระบุตัวตนที่สร้างขึ้นในระหว่างกระบวนการนี้มีลายเซ็นเดียวกับผู้ใช้หมายเลขโทรศัพท์จริง
อีกทางเลือกหนึ่งคือตั้งค่าบทบาททดสอบผ่านการอ้างสิทธิ์ที่กำหนดเองให้กับผู้ใช้เหล่านี้เพื่อแยกความแตกต่างว่าเป็นผู้ใช้ปลอม หากต้องการจำกัดการเข้าถึงเพิ่มเติม
การทดสอบการผสานรวม
นอกเหนือจากการทดสอบด้วยตนเองแล้ว Firebase Authentication ยังมี API ที่ช่วยเขียนการทดสอบการผสานรวมสำหรับการทดสอบการตรวจสอบสิทธิ์ทางโทรศัพท์ API เหล่านี้จะปิดใช้การยืนยันแอปโดยปิดใช้ข้อกําหนด reCAPTCHA ในเว็บและการแจ้งเตือนแบบ Push ที่เงียบใน 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 หลังจากรอ 0.1 วินาที ในทำนองเดียวกัน การตอบกลับจะหมดอายุหลังจากผ่านไประยะหนึ่ง และจะแก้ไขโดยอัตโนมัติก็ต่อเมื่อมีการเรียกใช้appVerifier.verify()
หรือมีการคลิกแอตทริบิวต์ Anchor ของ reCAPTCHA อีกครั้งเท่านั้น
เมื่อ reCAPTCHA จําลองได้รับการแก้ไข ฟังก์ชันการเรียกกลับที่เกี่ยวข้องจะทริกเกอร์ตามที่คาดไว้พร้อมกับคําตอบปลอม หากระบุการเรียกกลับเมื่อหมดอายุด้วย ระบบจะเรียกใช้การเรียกกลับเมื่อหมดอายุ
ขั้นตอนถัดไป
หลังจากผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรก ระบบจะสร้างบัญชีผู้ใช้ใหม่และลิงก์กับข้อมูลเข้าสู่ระบบ ซึ่งก็คือชื่อผู้ใช้และรหัสผ่าน หมายเลขโทรศัพท์ หรือข้อมูลผู้ให้บริการตรวจสอบสิทธิ์ที่ผู้ใช้ลงชื่อเข้าใช้ด้วย ระบบจะจัดเก็บบัญชีใหม่นี้เป็นส่วนหนึ่งของโปรเจ็กต์ Firebase และใช้เพื่อระบุผู้ใช้ในแอปทุกแอปในโปรเจ็กต์ได้ ไม่ว่าผู้ใช้จะลงชื่อเข้าใช้ด้วยวิธีใดก็ตาม
-
ในแอปทําตามวิธีที่เราแนะนําเพื่อดูสถานะการตรวจสอบสิทธิ์ของผู้ใช้คือการตั้งค่าผู้สังเกตการณ์ในออบเจ็กต์
Auth
จากนั้นคุณก็รับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ได้จากออบเจ็กต์User
โปรดดูหัวข้อจัดการผู้ใช้ ใน Firebase Realtime Database และ Cloud Storage กฎความปลอดภัย คุณสามารถรับรหัสผู้ใช้ที่ไม่ซ้ำของผู้ใช้ที่ลงชื่อเข้าใช้จากตัวแปร
auth
และนำไปใช้ควบคุมข้อมูลที่ผู้ใช้เข้าถึงได้
คุณสามารถอนุญาตให้ผู้ใช้ลงชื่อเข้าใช้แอปโดยใช้ผู้ให้บริการตรวจสอบสิทธิ์หลายรายได้โดยการลิงก์ข้อมูลเข้าสู่ระบบของผู้ให้บริการตรวจสอบสิทธิ์กับบัญชีผู้ใช้ที่มีอยู่
หากต้องการออกจากระบบของผู้ใช้ ให้เรียกใช้
signOut
ดังนี้
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });