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
- Jeśli nie została jeszcze przeprowadzona, wykonaj kroki opisane w przewodniku Pierwsze kroki.
- 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
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.
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();