คุณสามารถใช้การตรวจสอบสิทธิ์ 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 up 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: ตรวจสอบให้แน่ใจว่าแอปของคุณไม่ได้อาศัยข้อผิดพลาดที่เฉพาะเจาะจงมากกว่านี้
ขั้นตอนถัดไป
หลังจากที่ผู้ใช้ลงชื่อเข้าใช้เป็นครั้งแรก บัญชีผู้ใช้ใหม่จะถูกสร้างขึ้นและเชื่อมโยงกับข้อมูลประจำตัว ซึ่งได้แก่ ชื่อผู้ใช้และรหัสผ่าน หมายเลขโทรศัพท์ หรือข้อมูลผู้ให้บริการรับรองความถูกต้อง ซึ่งผู้ใช้ลงชื่อเข้าใช้ด้วย บัญชีใหม่นี้จัดเก็บไว้เป็นส่วนหนึ่งของโปรเจ็กต์ 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. });