使用自定義身份驗證系統通過 Firebase 進行身份驗證

您可以將 Firebase 身份驗證與自定義身份驗證系統集成,方法是修改身份驗證服務器以在用戶成功登錄時生成自定義簽名令牌。您的應用接收此令牌並使用它向 Firebase 進行身份驗證。

在你開始之前

  1. 如果您還沒有,請按照入門指南中的步驟操作。
  2. 安裝和配置 Firebase Admin 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("Unkown error.");
        }
    }
    

下一步

用戶創建新帳戶後,此帳戶將作為 Firebase 項目的一部分存儲,並可用於在項目中的每個應用中識別用戶,無論用戶使用何種登錄方法。

在您的應用程序中,您可以從User對像中獲取用戶的基本個人資料信息。請參閱管理用戶

在您的 Firebase 實時數據庫和雲存儲安全規則中,您可以從auth變量中獲取登錄用戶的唯一用戶 ID,並使用它來控制用戶可以訪問哪些數據。

您可以通過將身份驗證提供程序憑據鏈接到現有用戶帳戶來允許用戶使用多個身份驗證提供程序登錄您的應用程序。

要註銷用戶,請調用signOut()

await FirebaseAuth.instance.signOut();