ตรวจสอบสิทธิ์ด้วย Firebase ใน JavaScript โดยใช้ระบบการตรวจสอบสิทธิ์ที่กำหนดเอง

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

ก่อนเริ่มต้น

  1. เพิ่ม Firebase ลงในโปรเจ็กต์ JavaScript
  2. รับคีย์เซิร์ฟเวอร์ของโปรเจ็กต์โดยทำดังนี้
    1. ไปที่หน้าบัญชีบริการในการตั้งค่าของโปรเจ็กต์
    2. คลิกสร้างคีย์ส่วนตัวใหม่ที่ด้านล่างของส่วน Firebase Admin SDK ของหน้าบัญชีบริการ
    3. ระบบจะบันทึกคู่คีย์สาธารณะ/ส่วนตัวของบัญชีบริการใหม่ลงในคอมพิวเตอร์โดยอัตโนมัติ คัดลอกไฟล์นี้ไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์

ตรวจสอบสิทธิ์ด้วย Firebase

  1. เมื่อผู้ใช้ลงชื่อเข้าใช้แอป ให้ส่งข้อมูลเข้าสู่ระบบ (เช่น ชื่อผู้ใช้และรหัสผ่าน) ไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์ เซิร์ฟเวอร์จะตรวจสอบข้อมูลเข้าสู่ระบบและแสดงผลโทเค็นที่กำหนดเอง หากถูกต้อง
  2. หลังจากได้รับโทเค็นที่กำหนดเองจากเซิร์ฟเวอร์การตรวจสอบสิทธิ์แล้ว ให้ส่งต่อไปยัง signInWithCustomToken เพื่อลงชื่อเข้าใช้ผู้ใช้ ดังนี้

    Web Modular API

    import { getAuth, signInWithCustomToken } from "firebase/auth";
    
    const auth = getAuth();
    signInWithCustomToken(auth, token)
      .then((userCredential) => {
        // Signed in
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    API ที่ใช้เนมสเปซในเว็บ

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

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

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

  • สำหรับแอปของคุณ ทางที่แนะนำเพื่อให้ทราบถึงสถานะการตรวจสอบสิทธิ์ของผู้ใช้คือการตั้งค่าผู้สังเกตการณ์ในออบเจ็กต์ Auth จากนั้นคุณจะรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ได้จากออบเจ็กต์ User โปรดดูหัวข้อจัดการผู้ใช้

  • ในกฎความปลอดภัยของ Firebase Realtime Database และ Cloud Storage คุณจะรับรหัสผู้ใช้ที่ไม่ซ้ำของผู้ใช้ที่ลงชื่อเข้าใช้จากตัวแปร 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.
});

API ที่ใช้เนมสเปซในเว็บ

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});