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
- Jeśli jeszcze tego nie zrobisz, wykonaj czynności opisane w przewodniku dla początkujących.
- 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
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.
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();