Uwierzytelniaj w Firebase z użyciem 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ę. Aplikacja otrzymuje ten token i używa go do uwierzytelniania w Firebase.

Zanim zaczniesz

  1. Jeśli nie została jeszcze przeprowadzona, wykonaj kroki opisane w przewodniku Pierwsze kroki.
  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 za pomocą Firebase

  1. Gdy użytkownicy logują się w aplikacji, wysyłaj ich dane logowania (np. nazwę użytkownika i hasło) na serwer uwierzytelniania. Twój serwer sprawdza dane logowania i jeśli są prawidłowe, tworzy niestandardowy token Firebase i wysyła go z powrotem do aplikacji.

  2. Po otrzymaniu niestandardowego tokena 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

Po utworzeniu przez użytkownika nowego konta jest ono przechowywane w projekcie Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w projekcie, niezależnie od metody logowania.

W 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 czasu rzeczywistego Firebase i Cloud Storage możesz pobrać unikalny identyfikator zalogowanego użytkownika ze 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, łącząc dane logowania dostawcy uwierzytelniania z istniejącym kontem użytkownika.

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

await FirebaseAuth.instance.signOut();