Puoi utilizzare Firebase Authentication per consentire agli utenti di eseguire l'autenticazione con a Firebase utilizzando i suoi indirizzi email e password e per gestire basati su password.
Prima di iniziare
- Aggiungi Firebase al tuo progetto JavaScript.
- Se non hai ancora collegato l'app al progetto Firebase, fallo dalla console Firebase.
- Abilita l'accesso con email/password:
- Nella console Firebase, apri sezione Auth.
- Nella scheda Metodo di accesso, attiva l'accesso con Email/password. e fai clic su Salva.
Creare un account basato su password
Per creare un nuovo account utente con una password, completa i seguenti passaggi nella pagina di registrazione della tua app:
- Quando un nuovo utente si registra utilizzando il modulo di registrazione della tua app, compila qualsiasi nuovo i passaggi di convalida dell'account richiesti dalla tua app, ad esempio la verifica della la password del nuovo account è stata digitata correttamente e soddisfa le tue esigenze di complessità i tuoi requisiti.
- Crea un nuovo account passando l'indirizzo email e la password del nuovo utente
a
createUserWithEmailAndPassword
:Web
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; // .. });
Web
firebase.auth().createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; // .. });
Qui puoi anche rilevare e gestire gli errori. Per un elenco dei codici di errore, consulta la documentazione di riferimento per l'autenticazione.
Accedere a un utente con un indirizzo email e una password
La procedura per accedere a un utente con una password è simile a quella per creando un nuovo account. Nella pagina di accesso dell'app, segui questi passaggi:
- Quando un utente accede alla tua app, passa l'indirizzo email e la password dell'utente a
signInWithEmailAndPassword
:Web
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
firebase.auth().signInWithEmailAndPassword(email, password) .then((userCredential) => { // Signed in var user = userCredential.user; // ... }) .catch((error) => { var errorCode = error.code; var errorMessage = error.message; });
Qui puoi anche individuare e gestire gli errori. Per un elenco dei codici di errore, consulta la documentazione di riferimento per l'autenticazione.
Opzione consigliata: abilita la protezione dall'enumerazione delle email
Alcuni metodi Firebase Authentication che accettano indirizzi email come parametri generano errori specifici se l'indirizzo email non è registrato quando deve esserlo (ad esempio, quando accedi con un indirizzo email e una password) o se è registrato quando deve essere inutilizzato (ad esempio, quando modifichi l'indirizzo email di un utente). Sebbene questa opzione possa essere utile per suggerire rimedi specifici agli utenti, può anche essere utilizzata da malintenzionati per scoprire gli indirizzi email registrati dai tuoi utenti.
Per ridurre questo rischio, ti consigliamo di attivare la protezione per l'enumerazione delle email per il tuo progetto utilizzando lo strumento gcloud
di Google Cloud. Tieni presente che l'attivazione di questa funzionalità cambia il comportamento di generazione di report sugli errori di Firebase Authentication: assicurati che la tua app non si basi sugli errori più specifici.
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 è impostare un osservatore sull'oggetto
Auth
. Puoi quindi ottenere l'input dell'utente informazioni di base del profilo dall'oggettoUser
. Consulta Gestire gli utenti. In Firebase Realtime Database e Cloud Storage Regole di sicurezza, puoi ottieni l'ID utente unico dell'utente che ha eseguito l'accesso dalla variabile
auth
, e usarli per controllare i dati a cui un utente può accedere.
Puoi consentire agli utenti di accedere alla tua app utilizzando più autenticazioni collegando le credenziali del provider di autenticazione a un a un account utente esistente.
Per disconnettere 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. });