使用自訂驗證系統和 Unity 進行 Firebase 驗證

您可以透過以下方式整合 Firebase Authentication 與自訂驗證系統: 修改您的驗證伺服器,以便在使用者 才能成功登入應用程式接收這個權杖,並使用該權杖進行驗證 掌握實用知識

事前準備

  1. 使用前 Firebase Authentication、 請完成下列操作:

    • 在 Firebase 專案中註冊 Unity 專案。
    • 新增 Firebase Unity SDK (具體來說 FirebaseAuth.unitypackage) 附加至 Unity 專案。

    如需這些初始設定步驟的詳細操作說明,請前往 將 Firebase 新增至您的 Unity 中 專案

  2. 取得專案的伺服器金鑰:
    1. 前往服務帳戶頁面 頁面設定
    2. 按一下底部的「產生新私密金鑰」。 「服務帳戶」頁面的「Firebase Admin SDK」區段。
    3. 系統會自動建立新的服務帳戶的公開/私密金鑰組 就會儲存到您的電腦中。將此檔案複製到您的驗證伺服器。

透過 Firebase 驗證

FirebaseAuth 類別是所有 API 呼叫的閘道, 您可透過 FirebaseAuth.DefaultInstance 存取。
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

使用權杖呼叫 Firebase.Auth.FirebaseAuth.SignInWithCustomTokenAsync 驗證伺服器

  1. 使用者登入應用程式時,請將登入憑證 例如他們的使用者名稱和密碼)。您的 伺服器檢查憑證,並傳回 自訂權杖 請手動檢查。
  2. 從驗證伺服器收到自訂權杖後,請將 給 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.AuthResult result = task.Result;
      Debug.LogFormat("User signed in successfully: {0} ({1})",
          result.User.DisplayName, result.User.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 Realtime DatabaseCloud Storage中 查看安全性規則 透過 auth 變數取得已登入使用者的不重複使用者 ID。 控管使用者可以存取的資料

您可以讓使用者透過多重驗證機制登入您的應用程式 將驗證供應商憑證連結至 現有的使用者帳戶

如要登出使用者,請呼叫 SignOut()

auth.SignOut();