Catch up on everything we announced at this year's Firebase Summit. Learn more

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

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

ก่อนจะเริ่ม

  1. ก่อนที่คุณจะสามารถใช้ การตรวจสอบสิทธิ์ Firebase คุณจะต้อง:

    • ลงทะเบียนโปรเจ็กต์ Unity กับโปรเจ็กต์ Firebase
    • เพิ่ม Firebase สามัคคี SDK (เฉพาะ FirebaseAuth.unitypackage ) ให้กับโครงการความสามัคคีของคุณ

    ค้นหาคำแนะนำรายละเอียดขั้นตอนการตั้งค่าเหล่านี้เริ่มต้นในการ เพิ่ม Firebase กับโครงการความสามัคคีของคุณ

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

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

FirebaseAuth ชั้นเป็นประตูสำหรับทุกการเรียก API มันเป็นเข้าถึงได้ผ่าน FirebaseAuth.DefaultInstance
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

โทร Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync กับโทเค็นจากเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณ

  1. เมื่อผู้ใช้ลงชื่อเข้าใช้แอปของคุณ ให้ส่งข้อมูลรับรองการลงชื่อเข้าใช้ (เช่น ชื่อผู้ใช้และรหัสผ่าน) ไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณ ตรวจสอบเซิร์ฟเวอร์ของคุณสิทธิและผลตอบแทน ที่กำหนดเอง token หากพวกเขาเป็นที่ถูกต้อง
  2. หลังจากที่คุณได้รับการกำหนดเอง token จากเซิร์ฟเวอร์การตรวจสอบสิทธิ์ของคุณผ่านไป Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync เพื่อเข้าสู่ระบบของผู้ใช้:
    auth.SignInWithCustomTokenAsync(custom_token).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInWithCustomTokenAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInWithCustomTokenAsync encountered an error: " + task.Exception);
        return;
      }
    
      Firebase.Auth.FirebaseUser newUser = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          newUser.DisplayName, newUser.UserId);
    });
    

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

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

  • ในปพลิเคชันของคุณคุณจะได้รับข้อมูลรายละเอียดของผู้ใช้พื้นฐานจาก Firebase.Auth.FirebaseUser วัตถุ:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • ในฐานข้อมูล Firebase เรียลไทม์และการจัดเก็บเมฆ กฎการรักษาความปลอดภัย , คุณจะได้รับการลงนามใน ID ผู้ใช้ของผู้ใช้ที่ไม่ซ้ำกันจาก auth ตัวแปรและใช้ในการควบคุมสิ่งที่ข้อมูลที่เข้าถึงผู้ใช้สามารถ

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

ออกจากระบบผู้ใช้โทร SignOut() :

auth.SignOut();