Uwierzytelnianie Firebase możesz zintegrować z niestandardowym systemem uwierzytelniania, modyfikując serwer uwierzytelniania tak, aby po pomyślnym zalogowaniu użytkownika generował niestandardowe podpisane tokeny. Twoja aplikacja otrzymuje 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 Wprowadzenie.
- Zainstaluj i skonfiguruj pakiet Firebase Admin SDK . Pamiętaj, aby zainicjować pakiet SDK przy użyciu prawidłowych danych logowania do 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) na serwer uwierzytelniania. Twój serwer sprawdza poświadczenia i, jeśli są prawidłowe, tworzy niestandardowy token Firebase i odsyła go z powrotem do Twojej aplikacji.
Po otrzymaniu niestandardowego tokenu z serwera uwierzytelniania przekaż go do
signInWithCustomToken()
, aby zalogować się do 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 użytej metody logowania.
W swoich 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 i usługi Cloud Storage Firebase możesz uzyskać unikalny identyfikator zalogowanego użytkownika ze zmiennej auth
i używać go do kontrolowania, do jakich danych użytkownik może uzyskać dostęp.
Możesz zezwolić użytkownikom na logowanie się do Twojej aplikacji przy użyciu wielu dostawców uwierzytelniania, łącząc poświadczenia dostawcy uwierzytelniania ) z istniejącym kontem użytkownika.
Aby wylogować użytkownika, wywołaj signOut()
:
await FirebaseAuth.instance.signOut();