คุณสามารถใช้การตรวจสอบสิทธิ์ Firebase เพื่อให้ผู้ใช้ตรวจสอบสิทธิ์กับ Firebase โดยใช้ที่อยู่อีเมลและรหัสผ่าน และเพื่อจัดการบัญชีที่ใช้รหัสผ่านของแอป
ก่อนที่คุณจะเริ่มต้น
- เพิ่ม Firebase ในโครงการ JavaScript ของคุณ
- หากคุณยังไม่ได้เชื่อมต่อแอปกับโปรเจ็กต์ Firebase ให้เชื่อมต่อจาก คอนโซล Firebase
- เปิดใช้งานการลงชื่อเข้าใช้ด้วยอีเมล/รหัสผ่าน:
- ใน คอนโซล Firebase ให้เปิดส่วน การรับรองความถูกต้อง
- บนแท็บ วิธีการลงชื่อเข้า ใช้ ให้เปิดใช้งานวิธีการลงชื่อเข้าใช้ ด้วยอีเมล/รหัสผ่าน แล้วคลิก บันทึก
สร้างบัญชีที่ใช้รหัสผ่าน
หากต้องการสร้างบัญชีผู้ใช้ใหม่ด้วยรหัสผ่าน ให้ทำตามขั้นตอนต่อไปนี้ในหน้าลงชื่อสมัครใช้ของแอป
- เมื่อผู้ใช้ใหม่ลงชื่อสมัครใช้โดยใช้แบบฟอร์มลงชื่อสมัครใช้ของแอป ให้ทำตามขั้นตอนการตรวจสอบความถูกต้องของบัญชีใหม่ที่แอปของคุณต้องการ เช่น ตรวจสอบว่ารหัสผ่านของบัญชีใหม่พิมพ์ถูกต้องและตรงตามข้อกำหนดด้านความซับซ้อนของคุณ
- สร้างบัญชีใหม่โดยส่งที่อยู่อีเมลและรหัสผ่านของผู้ใช้ใหม่ไปยัง
createUserWithEmailAndPassword
:หากมีการสร้างบัญชีใหม่ ผู้ใช้จะลงชื่อเข้าใช้โดยอัตโนมัติ ดูที่ส่วนขั้นตอนถัดไปด้านล่างเพื่อรับรายละเอียดผู้ใช้ที่ลงชื่อเข้าใช้Web modular API
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web namespaced API
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
นี่เป็นที่ที่คุณสามารถตรวจจับและจัดการข้อผิดพลาดได้ สำหรับรายการรหัสข้อผิดพลาด โปรดดูที่ Auth Reference Docs
ลงชื่อเข้าใช้ผู้ใช้ด้วยที่อยู่อีเมลและรหัสผ่าน
ขั้นตอนในการลงชื่อเข้าใช้ผู้ใช้ด้วยรหัสผ่านจะคล้ายกับขั้นตอนสำหรับการสร้างบัญชีใหม่ ในหน้าลงชื่อเข้าใช้ของแอป ให้ทำดังต่อไปนี้:
- เมื่อผู้ใช้ลงชื่อเข้าใช้แอปของคุณ ให้ส่งที่อยู่อีเมลและรหัสผ่านของผู้ใช้เพื่อ
signInWithEmailAndPassword
:ดูที่ส่วนขั้นตอนถัดไปด้านล่างเพื่อรับรายละเอียดผู้ใช้ที่ลงชื่อเข้าใช้Web modular API
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web namespaced API
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
นี่เป็นที่ที่คุณสามารถตรวจจับและจัดการข้อผิดพลาดได้ สำหรับรายการรหัสข้อผิดพลาด โปรดดูที่ Auth Reference Docs
แนะนำ: เปิดใช้งานการป้องกันการแจงนับอีเมล
วิธีการรับรองความถูกต้องของ Firebase บางวิธีที่ใช้ที่อยู่อีเมลเป็นพารามิเตอร์ทำให้เกิดข้อผิดพลาดเฉพาะ หากที่อยู่อีเมลไม่ได้ลงทะเบียนเมื่อต้องลงทะเบียน (เช่น เมื่อลงชื่อเข้าใช้ด้วยที่อยู่อีเมลและรหัสผ่าน) หรือลงทะเบียนเมื่อไม่ได้ใช้งาน (เช่น เมื่อเปลี่ยนที่อยู่อีเมลของผู้ใช้) แม้ว่าสิ่งนี้จะเป็นประโยชน์สำหรับการแนะนำวิธีแก้ไขเฉพาะแก่ผู้ใช้ แต่ผู้ไม่ประสงค์ดีก็สามารถใช้ในทางที่ผิดเพื่อค้นหาที่อยู่อีเมลที่ลงทะเบียนโดยผู้ใช้ของคุณ
เพื่อลดความเสี่ยงนี้ เราขอแนะนำให้คุณ เปิดใช้งานการป้องกันการแจงนับอีเมล สำหรับโครงการของคุณโดยใช้เครื่องมือ Google Cloud gcloud
โปรดทราบว่าการเปิดใช้คุณลักษณะนี้จะเปลี่ยนพฤติกรรมการรายงานข้อผิดพลาดของ Firebase Authentication ตรวจสอบให้แน่ใจว่าแอปของคุณไม่ได้อาศัยข้อผิดพลาดที่เฉพาะเจาะจงมากกว่านี้
ขั้นตอนถัดไป
หลังจากที่ผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรก บัญชีผู้ใช้ใหม่จะถูกสร้างขึ้นและเชื่อมโยงกับข้อมูลประจำตัว ซึ่งก็คือชื่อผู้ใช้และรหัสผ่าน หมายเลขโทรศัพท์ หรือข้อมูลผู้ให้บริการตรวจสอบสิทธิ์ ซึ่งผู้ใช้ลงชื่อเข้าใช้ด้วย บัญชีใหม่นี้จัดเก็บเป็นส่วนหนึ่งของโปรเจ็กต์ Firebase และสามารถใช้ระบุผู้ใช้ในทุกแอปในโครงการ ไม่ว่าผู้ใช้จะลงชื่อเข้าใช้ด้วยวิธีใดก็ตาม
ในแอปของคุณ วิธีที่แนะนำให้ทราบสถานะการตรวจสอบสิทธิ์ของผู้ใช้คือการตั้งค่าผู้สังเกตการณ์บนวัตถุ
Auth
จากนั้น คุณจะได้รับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้จากวัตถุUser
ดู จัดการผู้ใช้ใน กฎความปลอดภัย ของ Firebase Realtime Database และ Cloud Storage คุณสามารถรับ 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. });