Uwierzytelniaj za pomocą Firebase za pomocą kont opartych na haśle i JavaScript

Uwierzytelnianie Firebase pozwala użytkownikom na uwierzytelnianie w Firebase za pomocą ich adresów e-mail i haseł oraz do zarządzania kontami opartymi na hasłach w aplikacji.

Zanim zaczniesz

  1. Dodaj Firebase do projektu JavaScript.
  2. Jeśli Twoja aplikacja nie jest jeszcze połączona z projektem Firebase, możesz to zrobić z poziomu konsoli Firebase.
  3. Włącz logowanie za pomocą adresu e-mail/hasła:
    1. W konsoli Firebase otwórz sekcję Uwierzytelnianie.
    2. Na karcie Metoda logowania włącz metodę logowania E-mail/hasło i kliknij Zapisz.

Tworzenie konta opartego na haśle

Aby utworzyć nowe konto użytkownika z hasłem, wykonaj te czynności na stronie rejestracji w aplikacji:

  1. Gdy nowy użytkownik rejestruje się za pomocą formularza rejestracyjnego w Twojej aplikacji, wykonaj wszystkie wymagane przez aplikację kroki weryfikacji konta, np. sprawdź, czy hasło do nowego konta jest wpisane prawidłowo i czy spełnia wymagania Twojej firmy.
  2. Utwórz nowe konto, przesyłając jego adres e-mail i hasło na adres createUserWithEmailAndPassword:

    Web Modular API

    import { getAuth, createUserWithEmailAndPassword } from "firebase/auth";
    
    const auth = getAuth();
    createUserWithEmailAndPassword(auth, email, password)
      .then((userCredential) => {
        // Signed up 
        const user = userCredential.user;
        // ...
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ..
      });

    Interfejs API internetowej przestrzeni nazw

    firebase.auth().createUserWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in 
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ..
      });
    Jeśli nowe konto zostało utworzone, użytkownik będzie zalogowany automatycznie. Zajrzyj do sekcji Dalsze kroki poniżej, aby uzyskać dane zalogowanego użytkownika.

    Możesz w nim też wykrywać i poprawiać błędy. Listę kodów błędów znajdziesz w dokumentacji referencyjnej uwierzytelniania.

Logowanie użytkownika za pomocą adresu e-mail i hasła

Procedura logowania użytkownika za pomocą hasła jest podobna do procedury tworzenia nowego konta. Na stronie logowania aplikacji wykonaj te czynności:

  1. Gdy użytkownik zaloguje się w Twojej aplikacji, przekaż jego adres e-mail i hasło do signInWithEmailAndPassword:

    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;
      });

    Interfejs API internetowej przestrzeni nazw

    firebase.auth().signInWithEmailAndPassword(email, password)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
      });
    Zajrzyj do sekcji Dalsze kroki poniżej, aby uzyskać dane zalogowanego użytkownika.

    Możesz w nim też wykrywać i poprawiać błędy. Listę kodów błędów znajdziesz w dokumentacji referencyjnej uwierzytelniania.

Zalecane: włącz ochronę wyliczania e-maili

Niektóre metody uwierzytelniania Firebase, które przyjmują adresy e-mail jako parametry, powodują wystąpienie błędów, jeśli adres e-mail nie jest zarejestrowany, gdy trzeba go zarejestrować (np. podczas logowania się za pomocą adresu e-mail i hasła), lub rejestruje, gdy musi być nieużywany (np. podczas zmiany adresu e-mail użytkownika). Może to być pomocne przy podpowiadaniu użytkownikom konkretnych środków zaradczych. Może też być wykorzystywane przez nieuczciwe podmioty do wykrycia adresów e-mail zarejestrowanych przez użytkowników.

Aby ograniczyć to ryzyko, zalecamy włączenie w projekcie ochrony przed wyliczeniem adresów e-mail za pomocą narzędzia Google Cloud gcloud. Pamiętaj, że włączenie tej funkcji zmienia sposób raportowania błędów Uwierzytelniania Firebase: dopilnuj, aby aplikacja nie korzystała z bardziej szczegółowych błędów.

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 obiektu User. 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.
});