ตรวจสอบสิทธิ์ด้วย 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("Unknown error.");
        }
    }
    

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

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

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

ในกฎความปลอดภัยของฐานข้อมูลเรียลไทม์ของ Firebase และ Cloud Storage คุณสามารถรับรหัสผู้ใช้ที่ไม่ซ้ำกันของผู้ใช้ที่ลงชื่อเข้าใช้ได้จากตัวแปร auth และใช้รหัสนี้เพื่อควบคุมข้อมูลที่ผู้ใช้เข้าถึงได้

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

หากต้องการออกจากระบบผู้ใช้ ให้เรียกใช้ signOut()

await FirebaseAuth.instance.signOut();