使用自訂身份驗證系統透過 Firebase 進行身份驗證

您可以將 Firebase 驗證與自訂身份驗證系統集成,方法是修改身份驗證伺服器以在使用者成功登入時產生自訂簽名令牌。您的應用程式收到此令牌並使用它透過 Firebase 進行身份驗證。

在你開始之前

  1. 如果您還沒有這樣做,請按照入門指南中的步驟操作。
  2. 安裝並配置 Firebase 管理 SDK 。請務必使用 Firebase 專案的正確憑證初始化 SDK

使用 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 即時資料庫和雲端儲存安全性規則中,您可以從auth變數取得登入使用者的唯一使用者 ID,並使用它來控制使用者可以存取哪些資料。

您可以透過將身分驗證提供者憑證連結到現有使用者帳戶,允許使用者使用多個驗證提供者登入您的應用程式。

若要登出用戶,請呼叫signOut()

await FirebaseAuth.instance.signOut();