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
- Jeśli jeszcze tego nie zrobiłeś, wykonaj czynności opisane w przewodniku wprowadzającym .
- Zainstaluj i skonfiguruj pakiet SDK administratora Firebase . Pamiętaj, aby zainicjować zestaw SDK z poprawnymi poświadczeniami dla projektu Firebase.
Uwierzytelnij się w Firebase
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.
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("Unkown 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();