เริ่มต้นใช้งานการตรวจสอบสิทธิ์ Firebase ในเว็บไซต์

คุณใช้ Firebase Authentication เพื่ออนุญาตให้ผู้ใช้ลงชื่อเข้าใช้แอปโดยใช้วิธีการลงชื่อเข้าใช้หนึ่งวิธีขึ้นไปได้ ซึ่งรวมถึงการลงชื่อเข้าใช้ด้วยอีเมลและรหัสผ่าน รวมถึงผู้ให้บริการข้อมูลประจำตัวแบบรวมศูนย์ เช่น Google Sign-In และ Facebook Login บทแนะนำนี้จะช่วยให้คุณเริ่มต้นใช้งาน Firebase Authentication โดยแสดงวิธีเพิ่มการลงชื่อเข้าใช้ด้วยอีเมลและรหัสผ่านลงในแอป

เพิ่มและเริ่มต้น Authentication SDK

  1. หากยังไม่ได้ดำเนินการ ให้ ติดตั้ง Firebase JS SDK และเริ่มต้น Firebase

  2. เพิ่ม Firebase Authentication JS SDK และเริ่มต้นใช้งาน Firebase Authentication

Web

import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth";  // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = {   // ... };  // Initialize Firebase const app = initializeApp(firebaseConfig);   // Initialize Firebase Authentication and get a reference to the service const auth = getAuth(app); 

Web

import firebase from "firebase/compat/app"; import "firebase/compat/auth";  // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = {   // ... };  // Initialize Firebase firebase.initializeApp(firebaseConfig);   // Initialize Firebase Authentication and get a reference to the service const auth = firebase.auth(); 

(ไม่บังคับ) สร้างต้นแบบและทดสอบด้วย Firebase Local Emulator Suite

ก่อนจะพูดถึงวิธีที่แอปของคุณตรวจสอบสิทธิ์ผู้ใช้ เรามาทำความรู้จักชุดเครื่องมือที่คุณใช้ในการสร้างต้นแบบและทดสอบAuthenticationฟังก์ชันการทำงานFirebase Local Emulator Suiteกันก่อน หากคุณกำลังตัดสินใจเลือกเทคนิคการตรวจสอบสิทธิ์ และผู้ให้บริการ ลองใช้โมเดลข้อมูลต่างๆ กับข้อมูลสาธารณะและข้อมูลส่วนตัว โดยใช้ Authentication และ Firebase Security Rules หรือสร้างต้นแบบการออกแบบ UI การลงชื่อเข้าใช้ การทำงานในเครื่องโดยไม่ต้องติดตั้งใช้งานบริการจริงอาจเป็นไอเดียที่ดี

Authenticationโปรแกรมจำลองเป็นส่วนหนึ่งของ Local Emulator Suite ซึ่ง ช่วยให้แอปของคุณโต้ตอบกับเนื้อหาและการกำหนดค่าฐานข้อมูลจำลองได้ รวมถึงทรัพยากรโปรเจ็กต์จำลอง (ฟังก์ชัน ฐานข้อมูลอื่นๆ และกฎการรักษาความปลอดภัย) ด้วย

การใช้โปรแกรมจำลอง Authentication มีขั้นตอนเพียงไม่กี่ขั้นตอนดังนี้

  1. การเพิ่มบรรทัดโค้ดลงในการกำหนดค่าการทดสอบของแอปเพื่อเชื่อมต่อกับโปรแกรมจำลอง
  2. จากรูทของไดเรกทอรีโปรเจ็กต์ในเครื่อง ให้เรียกใช้ firebase emulators:start
  3. ใช้ Local Emulator Suite UI สำหรับการสร้างต้นแบบแบบอินเทอร์แอกทีฟ หรือใช้ Authentication REST API ของโปรแกรมจำลองสำหรับการทดสอบแบบไม่โต้ตอบ

ดูคำแนะนำแบบละเอียดได้ที่เชื่อมต่อแอปกับโปรแกรมจำลอง Authentication ดูข้อมูลเพิ่มเติมได้ที่Local Emulator Suiteบทนำ

ตอนนี้เรามาดูวิธีตรวจสอบสิทธิ์ผู้ใช้กันต่อ

ลงชื่อสมัครใช้ผู้ใช้ใหม่

สร้างแบบฟอร์มที่อนุญาตให้ผู้ใช้ใหม่ลงทะเบียนกับแอปของคุณโดยใช้อีเมล และรหัสผ่าน เมื่อผู้ใช้กรอกแบบฟอร์มเสร็จแล้ว ให้ตรวจสอบอีเมล และรหัสผ่านที่ผู้ใช้ระบุ จากนั้นส่งไปยังเมธอด createUserWithEmailAndPassword

Web

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

firebase.auth().createUserWithEmailAndPassword(email, password)   .then((userCredential) => {     // Signed in      var user = userCredential.user;     // ...   })   .catch((error) => {     var errorCode = error.code;     var errorMessage = error.message;     // ..   });

ลงชื่อเข้าใช้ผู้ใช้ที่มีอยู่

สร้างแบบฟอร์มที่อนุญาตให้ผู้ใช้เดิมลงชื่อเข้าใช้ด้วยอีเมล และรหัสผ่านของตน เมื่อผู้ใช้กรอกแบบฟอร์มเสร็จสมบูรณ์ ให้เรียกใช้เมธอด signInWithEmailAndPassword ดังนี้

Web

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

firebase.auth().signInWithEmailAndPassword(email, password)   .then((userCredential) => {     // Signed in     var user = userCredential.user;     // ...   })   .catch((error) => {     var errorCode = error.code;     var errorMessage = error.message;   });

ตั้งค่าเครื่องสังเกตสถานะการตรวจสอบสิทธิ์และรับข้อมูลผู้ใช้

สำหรับหน้าของแอปแต่ละหน้าที่ต้องการข้อมูลเกี่ยวกับผู้ใช้ที่ลงชื่อเข้าใช้ ให้แนบ Observer ไปยังออบเจ็กต์การตรวจสอบสิทธิ์ส่วนกลาง ระบบจะเรียกใช้ Observer นี้ ทุกครั้งที่สถานะการลงชื่อเข้าใช้ของผู้ใช้เปลี่ยนแปลง

แนบ Observer โดยใช้วิธี onAuthStateChanged เมื่อผู้ใช้ลงชื่อเข้าใช้สำเร็จ คุณจะดูข้อมูลเกี่ยวกับผู้ใช้ได้ใน Observer

Web

import { getAuth, onAuthStateChanged } from "firebase/auth";  const auth = getAuth(); onAuthStateChanged(auth, (user) => {   if (user) {     // User is signed in, see docs for a list of available properties     // https://firebase.google.com/docs/reference/js/auth.user     const uid = user.uid;     // ...   } else {     // User is signed out     // ...   } });

Web

firebase.auth().onAuthStateChanged((user) => {   if (user) {     // User is signed in, see docs for a list of available properties     // https://firebase.google.com/docs/reference/js/v8/firebase.User     var uid = user.uid;     // ...   } else {     // User is signed out     // ...   } });

ขั้นตอนถัดไป

ดูวิธีเพิ่มการรองรับผู้ให้บริการข้อมูลประจำตัวอื่นๆ และบัญชีผู้ใช้ชั่วคราวที่ไม่ระบุชื่อ