Możesz użyć uwierzytelniania Firebase, aby umożliwić użytkownikom uwierzytelnianie w Firebase przy użyciu ich adresów e-mail i haseł oraz zarządzać kontami aplikacji opartymi na hasłach.
Zanim zaczniesz
- Dodaj Firebase do swojego projektu JavaScript .
- Jeśli nie połączyłeś jeszcze swojej aplikacji z projektem Firebase, zrób to z poziomu konsoli Firebase .
- Włącz logowanie e-mailem/hasłem:
- W konsoli Firebase otwórz sekcję Auth .
- Na karcie Metoda logowania włącz metodę logowania E-mail/hasło i kliknij Zapisz .
Utwórz konto oparte na haśle
Aby utworzyć nowe konto użytkownika z hasłem, wykonaj następujące czynności na stronie rejestracji aplikacji:
- Gdy nowy użytkownik zarejestruje się za pomocą formularza rejestracji Twojej aplikacji, wykonaj wszystkie kroki weryfikacji nowego konta wymagane przez aplikację, takie jak sprawdzenie, czy hasło do nowego konta zostało poprawnie wpisane i spełnia wymagania dotyczące złożoności.
- Utwórz nowe konto, przekazując adres e-mail i hasło nowego użytkownika do
createUserWithEmailAndPassword
:Jeśli nowe konto zostało utworzone, użytkownik jest logowany automatycznie. Zapoznaj się z poniższą sekcją Następne kroki, aby uzyskać szczegółowe informacje o zalogowanym użytkowniku.Web modular API
import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; // .. });
Web namespaced API
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Jest to również miejsce, w którym można wychwytywać i obsługiwać błędy. Listę kodów błędów można znaleźć w dokumentach referencyjnych uwierzytelniania .
Zaloguj użytkownika za pomocą adresu e-mail i hasła
Kroki logowania użytkownika za pomocą hasła są podobne do kroków tworzenia nowego konta. Na stronie logowania aplikacji wykonaj następujące czynności:
- Gdy użytkownik loguje się do Twojej aplikacji, przekaż adres e-mail i hasło użytkownika do
signInWithEmailAndPassword
:Zapoznaj się z poniższą sekcją Następne kroki, aby uzyskać szczegółowe informacje o zalogowanym użytkowniku.Web modular API
import { getAuth, signInWithEmailAndPassword } from "firebase/auth"; const auth = getAuth(); signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { // Signed in const user = userCredential.user; // ... }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; });
Web namespaced API
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
Jest to również miejsce, w którym można wychwytywać i obsługiwać błędy. Listę kodów błędów można znaleźć w dokumentach referencyjnych uwierzytelniania .
Zalecane: Włącz ochronę wyliczania wiadomości e-mail
Niektóre metody uwierzytelniania Firebase, które przyjmują adresy e-mail jako parametry, zgłaszają określone błędy, jeśli adres e-mail jest niezarejestrowany, gdy musi być zarejestrowany (na przykład podczas logowania za pomocą adresu e-mail i hasła) lub zarejestrowany, gdy musi być nieużywany (na przykład przy zmianie adresu e-mail użytkownika). Chociaż może to być pomocne w sugerowaniu użytkownikom konkretnych środków zaradczych, może być również nadużywane przez złośliwe podmioty w celu odkrycia adresów e-mail zarejestrowanych przez użytkowników.
Aby ograniczyć to ryzyko, zalecamy włączenie ochrony wyliczania e-maili w projekcie za pomocą narzędzia Google Cloud gcloud
. Pamiętaj, że włączenie tej funkcji zmienia zachowanie raportowania błędów uwierzytelniania Firebase: upewnij się, że Twoja aplikacja nie polega na bardziej szczegółowych błędach.
Następne kroki
Gdy użytkownik zaloguje się po raz pierwszy, tworzone jest nowe konto użytkownika, które jest łączone z poświadczeniami — czyli nazwą użytkownika i hasłem, numerem telefonu lub informacjami o dostawcy uwierzytelniania — za pomocą których użytkownik się logował. To nowe konto jest przechowywane jako część Twojego projektu Firebase i może służyć do identyfikacji użytkownika w każdej aplikacji w Twoim projekcie, niezależnie od tego, jak użytkownik się loguje.
W twoich aplikacjach zalecanym sposobem poznania statusu autoryzacji użytkownika jest ustawienie obserwatora na obiekcie
Auth
. Następnie można uzyskać podstawowe informacje o profilu użytkownika z obiektuUser
. Zobacz Zarządzanie użytkownikami .W regułach bezpieczeństwa Firebase Realtime Database 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 ma 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
:
Web modular API
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web namespaced API
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });