Uwierzytelnianie Firebase możesz zintegrować z niestandardowym systemem uwierzytelniania, modyfikując serwer uwierzytelniania tak, aby generował niestandardowe podpisane tokeny, gdy użytkownik się zaloguje. Aplikacja otrzymuje ten token i używa go do uwierzytelniania w Firebase.
Zanim zaczniesz
- Dodaj Firebase do projektu JavaScript.
- Pobierz klucze serwera projektu:
- Otwórz stronę Konta usługi w ustawieniach projektu.
- Kliknij Wygeneruj nowy klucz prywatny u dołu sekcji Pakiet SDK Firebase Admin na stronie Konta usługi.
- Para kluczy publiczny/prywatny nowego konta usługi zostanie automatycznie zapisana na Twoim komputerze. Skopiuj ten plik na serwer uwierzytelniania.
Uwierzytelnij za pomocą Firebase
- Gdy użytkownicy logują się w Twojej aplikacji, wyślij ich dane logowania (np. nazwę użytkownika i hasło) na swój serwer uwierzytelniania. Serwer sprawdza dane logowania i zwraca token niestandardowy, jeśli jest prawidłowy.
- Po otrzymaniu niestandardowego tokena z serwera uwierzytelniania przekaż go do
signInWithCustomToken
, aby zalogować użytkownika:Web Modular API
import { getAuth, signInWithCustomToken } from "firebase/auth"; const auth = getAuth(); signInWithCustomToken(auth, token) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // ... });
Interfejs API internetowej przestrzeni nazw
firebase.auth().signInWithCustomToken(token) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
Dalsze kroki
Gdy użytkownik loguje się po raz pierwszy, tworzone jest nowe konto użytkownika, które jest łączone z danymi logowania (nazwa użytkownika i hasło, numer telefonu lub informacje o dostawcy uwierzytelniania). Nowe konto jest przechowywane w ramach Twojego projektu Firebase i może być używane do identyfikowania użytkowników we wszystkich aplikacjach w Twoim projekcie niezależnie od tego, jak się on loguje.
-
Zalecanym sposobem na poznanie stanu uwierzytelniania użytkownika w aplikacjach jest ustawienie obserwatora w obiekcie
Auth
. Dzięki temu można uzyskać podstawowe informacje o profilu użytkownika z obiektuUser
. Zobacz Zarządzanie użytkownikami. W regułach zabezpieczeń Bazy danych czasu rzeczywistego Firebase i Cloud Storage możesz pobrać ze zmiennej
auth
unikalny identyfikator użytkownika zalogowanego użytkownika i użyć go do kontrolowania, do jakich danych użytkownik ma dostęp.
Możesz zezwolić użytkownikom na logowanie się w aplikacji przy użyciu różnych dostawców uwierzytelniania, łącząc dane logowania dostawcy uwierzytelniania z istniejącym kontem użytkownika.
Aby wylogować użytkownika, wywołaj
signOut
:
Web Modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Interfejs API internetowej przestrzeni nazw
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });