Uwierzytelnij się w Firebase przy użyciu niestandardowego systemu uwierzytelniania

Możesz zintegrować uwierzytelnianie Firebase z niestandardowym systemem uwierzytelniania, modyfikując serwer uwierzytelniania tak, aby generował niestandardowe tokeny z podpisem, gdy użytkownik pomyślnie się zaloguje. Twoja aplikacja odbiera ten token i używa go do uwierzytelniania w Firebase.

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobiłeś, wykonaj czynności opisane w przewodniku wprowadzającym .
  2. Zainstaluj i skonfiguruj pakiet SDK administratora Firebase . Pamiętaj, aby zainicjować zestaw SDK z poprawnymi poświadczeniami dla projektu Firebase.

Uwierzytelnij się w Firebase

  1. Gdy użytkownicy logują się do Twojej aplikacji, wyślij ich dane logowania (na przykład nazwę użytkownika i hasło) do serwera uwierzytelniania. Twój serwer sprawdza poświadczenia i, jeśli są prawidłowe, tworzy niestandardowy token Firebase i wysyła token z powrotem do Twojej aplikacji.

  2. Po otrzymaniu tokenu niestandardowego z serwera uwierzytelniania przekaż go do signInWithCustomToken() w celu zalogowania użytkownika:

    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.");
        }
    }
    

Następne kroki

Gdy użytkownik utworzy nowe konto, jest ono przechowywane jako część projektu Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od metody logowania, której użył użytkownik.

W Twoich aplikacjach możesz uzyskać podstawowe informacje o profilu użytkownika z obiektu User . Zobacz Zarządzanie użytkownikami .

W regułach bezpieczeństwa bazy danych Firebase Realtime i Cloud Storage możesz uzyskać unikalny identyfikator zalogowanego użytkownika ze zmiennej auth i użyć go do kontrolowania, do jakich danych użytkownik może uzyskać dostęp.

Możesz zezwolić użytkownikom na logowanie się do aplikacji przy użyciu wielu dostawców uwierzytelniania, łącząc dane uwierzytelniające dostawcy uwierzytelniania ) z istniejącym kontem użytkownika.

Aby wylogować użytkownika, wywołaj funkcję signOut() :

await FirebaseAuth.instance.signOut();