Autenticazione con Firebase in JavaScript utilizzando un sistema di autenticazione personalizzato

Puoi integrare Firebase Authentication con un sistema di autenticazione personalizzato modificando il tuo server di autenticazione per produrre token firmati personalizzati quando un utente accede correttamente. La tua app riceve questo token e lo utilizza per autenticarsi con Firebase.

Prima di iniziare

  1. Aggiungere Firebase al progetto JavaScript .
  2. Ottieni le chiavi del server del tuo progetto:
    1. Vai alla account di servizio pagina nelle impostazioni del vostro progetto.
    2. Fare clic su Genera nuova chiave privata nella parte inferiore della sezione Firebase Admin SDK della pagina Account di servizio.
    3. La coppia di chiavi pubblica/privata del nuovo account di servizio viene salvata automaticamente sul tuo computer. Copia questo file sul tuo server di autenticazione.

Autentica con Firebase

  1. Quando gli utenti accedono alla tua app, invia le loro credenziali di accesso (ad esempio, nome utente e password) al tuo server di autenticazione. I vostri server controlla le credenziali e restituisce una misura di token se sono validi.
  2. Dopo aver ricevuto il costume token dal server di autenticazione, passarlo al signInWithCustomToken per accedere l'utente:

    Versione web 9

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

    Versione web 8

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

Prossimi passi

Dopo che un utente accede per la prima volta, viene creato un nuovo account utente e collegato alle credenziali, ovvero nome utente e password, numero di telefono o informazioni sul provider di autenticazione, con cui l'utente ha effettuato l'accesso. Questo nuovo account viene archiviato come parte del tuo progetto Firebase e può essere utilizzato per identificare un utente in ogni app del progetto, indipendentemente da come l'utente accede.

  • Nelle vostre applicazioni, il metodo consigliato per conoscere lo stato di autenticazione del vostro utente è quello di impostare un osservatore sulla Auth oggetto. È quindi possibile ottenere informazioni sul profilo di base dell'utente dal User oggetto. Vedere Gestione utenti .

  • Nel database Firebase in tempo reale e cloud storage Regole di sicurezza , è possibile ottenere la firma-in ID utente univoco dell'utente dal auth variabile e utilizzarlo per controllare quali dati un accesso utente può.

È possibile consentire agli utenti di accedere alla vostra applicazione utilizzando più provider di autenticazione da collegando Auth credenziali di provider per un account utente esistente.

Per firmare un utente, chiamata signOut :

Versione web 9

import { getAuth, signOut } from "firebase/auth";

const auth = getAuth();
signOut(auth).then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});

Versione web 8

firebase.auth().signOut().then(() => {
  // Sign-out successful.
}).catch((error) => {
  // An error happened.
});