Puoi integrare Firebase Authentication con un sistema di autenticazione personalizzato Modificare il server di autenticazione per produrre token firmati personalizzati quando esegue l'accesso. La tua app riceve questo token e lo utilizza per autenticarsi con Firebase.
Prima di iniziare
- Aggiungi Firebase al tuo progetto JavaScript.
- Recupera le chiavi server del progetto:
- Vai alla pagina Account di servizio. nelle impostazioni del progetto.
- Fai clic su Genera nuova chiave privata nella parte inferiore del Sezione SDK Admin Firebase della pagina Account di servizio.
- La coppia di chiavi pubblica/privata del nuovo account di servizio viene salvata automaticamente sul computer. Copia questo file nel server di autenticazione.
Autenticazione con Firebase
- Quando gli utenti accedono alla tua app, invia le loro credenziali di accesso (ad ad esempio nome utente e password) al tuo server di autenticazione. Il tuo server controlla le credenziali e restituisce un personalizzato se sono validi.
- Dopo aver ricevuto il token personalizzato dal server di autenticazione, passa
a
signInWithCustomToken
per far accedere l'utente:Web
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
firebase.auth().signInWithCustomToken(token) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // ... });
Passaggi successivi
Dopo che un utente ha eseguito l'accesso per la prima volta, viene creato un nuovo account utente e collegato alle credenziali, ovvero nome utente e password, numero di telefono o informazioni del fornitore di autenticazione, con cui l'utente ha eseguito l'accesso. Questo nuovo viene archiviato come parte del progetto Firebase e può essere utilizzato per identificare a un utente in ogni app del progetto, a prescindere da come esegue l'accesso.
-
Nelle tue app, il modo consigliato per conoscere lo stato di autenticazione dell'utente è imposta un osservatore sull'oggetto
Auth
. Puoi quindi ottenere l'input dell'utente informazioni di base del profilo dall'oggettoUser
. Consulta Gestisci utenti. Nelle Regole di sicurezza Firebase Realtime Database e Cloud Storage, puoi recuperare l'ID utente univoco dell'utente che ha eseguito l'accesso dalla variabile
auth
e utilizzarlo per controllare a quali dati può accedere un utente.
Puoi consentire agli utenti di accedere alla tua app utilizzando più provider di autenticazione collegando le credenziali del provider di autenticazione a un account utente esistente.
Per scollegare un utente, chiama
signOut
:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });