Uwierzytelnianie w Firebase za pomocą niestandardowego systemu uwierzytelniania

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

Zanim zaczniesz

  1. Jeśli jeszcze tego nie zrobisz, wykonaj czynności opisane w przewodniku dla początkujących.
  2. Zainstaluj i skonfiguruj pakiet Firebase Admin SDK. Pamiętaj, aby zainicjować pakiet SDK za pomocą prawidłowych danych logowania do projektu w Firebase.

Uwierzytelnianie w Firebase

  1. Gdy użytkownicy logują się w Twojej aplikacji, wyślij ich dane logowania (np. nazwę użytkownika i hasło) do serwera uwierzytelniania. Serwer sprawdza dane logowania i, jeśli są prawidłowe, tworzy niestandardowy token Firebase i wysyła go z powrotem do aplikacji.

  2. Gdy otrzymasz niestandardowy token z serwera uwierzytelniania, przekaż go do funkcji signInWithCustomToken(), aby zalogować 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.");
        }
    }
    

Dalsze kroki

Gdy użytkownik utworzy nowe konto, zostanie ono zapisane w projekcie w Firebase i będzie można go używać do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od metody logowania.

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

W regułach bezpieczeństwa Bazy danych czasu rzeczywistego Firebase i Cloud Storage możesz pobrać unikalny identyfikator zalogowanego użytkownika z zmiennej auth i użyć go do kontrolowania, do jakich danych użytkownik ma dostęp.

Możesz zezwolić użytkownikom na logowanie się w aplikacji za pomocą wielu dostawców uwierzytelniania przez łączenie danych logowania dostawcy uwierzytelniania) z istniejącym kontem użytkownika.

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

await FirebaseAuth.instance.signOut();