Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

ก่อนจะเริ่ม

  1. หากคุณยังไม่ได้ดำเนินการ ให้ทำตามขั้นตอนในคู่มือ เริ่มต้น ใช้งาน
  2. ติดตั้งและกำหนดค่า Firebase Admin SDK อย่าลืม เริ่มต้น SDK ด้วยข้อมูลรับรองที่ถูกต้องสำหรับโปรเจ็กต์ Firebase

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

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

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

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unkown error.");
        }
    }
    

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

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

ในแอพของคุณ คุณสามารถรับข้อมูลโปรไฟล์พื้นฐานของผู้ใช้จากออบเจ็กต์ User ดู จัดการผู้ใช้

ในฐานข้อมูล Firebase Realtime Database และ Cloud Storage Security Rules คุณสามารถรับ ID ผู้ใช้เฉพาะของผู้ใช้ที่ลงชื่อเข้าใช้จากตัวแปร auth และใช้เพื่อควบคุมข้อมูลที่ผู้ใช้สามารถเข้าถึงได้

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

หากต้องการออกจากระบบผู้ใช้ โทร signOut() :

await FirebaseAuth.instance.signOut();