Uwierzytelniaj się za pomocą Firebase w JavaScript, korzystając z niestandardowego systemu uwierzytelniania

Możesz zintegrować uwierzytelnianie Firebase z niestandardowym systemem uwierzytelniania, modyfikując serwer uwierzytelniania tak, aby generował niestandardowe tokeny z podpisem, gdy użytkownik pomyślnie się zaloguje. Twoja aplikacja odbiera ten token i używa go do uwierzytelniania w Firebase.

Zanim zaczniesz

  1. Dodaj Firebase do swojego projektu JavaScript .
  2. Zdobądź klucze serwera swojego projektu:
    1. Przejdź do strony Konta usług w ustawieniach projektu.
    2. Kliknij opcję Wygeneruj nowy klucz prywatny u dołu sekcji pakietu Firebase Admin SDK na stronie Konta usług .
    3. Para kluczy publiczny/prywatny nowego konta usługi zostanie automatycznie zapisana na Twoim komputerze. Skopiuj ten plik na swój serwer uwierzytelniania.

Uwierzytelnij się w Firebase

  1. Gdy użytkownicy logują się do Twojej aplikacji, wyślij ich dane logowania (na przykład nazwę użytkownika i hasło) do serwera uwierzytelniania. Twój serwer sprawdza poświadczenia i zwraca niestandardowy token, jeśli są prawidłowe.
  2. Po otrzymaniu tokenu niestandardowego z serwera uwierzytelniającego 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;
        // ...
      });

    Web namespaced API

    firebase.auth().signInWithCustomToken(token)
      .then((userCredential) => {
        // Signed in
        var user = userCredential.user;
        // ...
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });

Następne kroki

Gdy użytkownik zaloguje się po raz pierwszy, zostanie utworzone nowe konto użytkownika i powiązane z poświadczeniami — czyli nazwą użytkownika i hasłem, numerem telefonu lub informacjami o dostawcy uwierzytelniania — za pomocą których użytkownik się zalogował. To nowe konto jest przechowywane jako część Twojego projektu Firebase i może służyć do identyfikowania użytkownika w każdej aplikacji w Twoim projekcie, niezależnie od tego, w jaki sposób użytkownik się loguje.

  • W aplikacjach zalecanym sposobem sprawdzenia stanu uwierzytelnienia użytkownika jest ustawienie obserwatora w obiekcie Auth . Następnie można uzyskać podstawowe informacje o profilu użytkownika z obiektu User . Zobacz Zarządzanie użytkownikami .

  • W regułach bezpieczeństwa bazy danych Firebase Realtime 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 może uzyskać dostęp.

Możesz zezwolić użytkownikom na logowanie się do 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 funkcję 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.
});