Introducció
L'autenticació amb correu electrònic i contrasenya és una de les formes més comunes i senzilles d'autenticar usuaris en una aplicació. Firebase proporciona una API fàcil d'utilitzar per implementar aquest tipus d'autenticació de manera segura i eficient.
Configuració inicial
Pas 1: Activar l'autenticació amb correu electrònic i contrasenya a la consola de Firebase
- Accedeix a la consola de Firebase.
- Selecciona el teu projecte.
- A la barra lateral, fes clic a "Authentication" (Autenticació).
- A la pestanya "Sign-in method" (Mètode d'inici de sessió), activa l'opció "Email/Password" (Correu electrònic/Contrasenya).
Pas 2: Afegir Firebase al teu projecte
Assegura't d'haver afegit Firebase al teu projecte seguint les instruccions de configuració inicial proporcionades per Firebase. Aquí tens un exemple per a una aplicació web:
<!-- Inclou la llibreria de Firebase --> <script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/9.0.0/firebase-auth.js"></script> <script> // Configuració de Firebase const firebaseConfig = { apiKey: "YOUR_API_KEY", authDomain: "YOUR_PROJECT_ID.firebaseapp.com", projectId: "YOUR_PROJECT_ID", storageBucket: "YOUR_PROJECT_ID.appspot.com", messagingSenderId: "YOUR_MESSAGING_SENDER_ID", appId: "YOUR_APP_ID" }; // Inicialitza Firebase firebase.initializeApp(firebaseConfig); </script>
Crear un nou usuari
Per crear un nou usuari amb correu electrònic i contrasenya, utilitza el mètode createUserWithEmailAndPassword
de Firebase Authentication.
Exemple de codi
// Referència a l'objecte d'autenticació de Firebase const auth = firebase.auth(); // Funció per registrar un nou usuari function registerUser(email, password) { auth.createUserWithEmailAndPassword(email, password) .then((userCredential) => { // Usuari registrat correctament const user = userCredential.user; console.log('Usuari registrat:', user); }) .catch((error) => { // Gestió d'errors const errorCode = error.code; const errorMessage = error.message; console.error('Error en registrar l\'usuari:', errorCode, errorMessage); }); } // Exemple d'ús registerUser('[email protected]', 'password123');
Iniciar sessió amb un usuari existent
Per iniciar sessió amb un usuari existent, utilitza el mètode signInWithEmailAndPassword
.
Exemple de codi
// Funció per iniciar sessió function loginUser(email, password) { auth.signInWithEmailAndPassword(email, password) .then((userCredential) => { // Usuari ha iniciat sessió correctament const user = userCredential.user; console.log('Usuari ha iniciat sessió:', user); }) .catch((error) => { // Gestió d'errors const errorCode = error.code; const errorMessage = error.message; console.error('Error en iniciar sessió:', errorCode, errorMessage); }); } // Exemple d'ús loginUser('[email protected]', 'password123');
Tancar sessió
Per tancar la sessió de l'usuari actual, utilitza el mètode signOut
.
Exemple de codi
// Funció per tancar sessió function logoutUser() { auth.signOut() .then(() => { // Usuari ha tancat sessió correctament console.log('Usuari ha tancat sessió'); }) .catch((error) => { // Gestió d'errors console.error('Error en tancar sessió:', error); }); } // Exemple d'ús logoutUser();
Gestió d'errors comuns
Errors comuns i les seves solucions
Codi d'error | Descripció | Solució |
---|---|---|
auth/email-already-in-use |
El correu electrònic ja està en ús per un altre compte. | Utilitza un correu electrònic diferent o recupera la contrasenya si l'usuari ha oblidat. |
auth/invalid-email |
El correu electrònic no té un format vàlid. | Verifica que el correu electrònic tingui un format correcte. |
auth/weak-password |
La contrasenya és massa dèbil. | Utilitza una contrasenya més forta (mínim 6 caràcters). |
auth/user-not-found |
No existeix cap usuari amb aquest correu electrònic. | Verifica que el correu electrònic sigui correcte o registra un nou usuari. |
auth/wrong-password |
La contrasenya és incorrecta. | Verifica que la contrasenya sigui correcta o recupera la contrasenya si l'usuari l'ha oblidat. |
Exercicis pràctics
Exercici 1: Crear un formulari de registre
Crea un formulari HTML que permeti als usuaris registrar-se amb el seu correu electrònic i contrasenya. Implementa la funció registerUser
per gestionar el registre.
Exercici 2: Crear un formulari d'inici de sessió
Crea un formulari HTML que permeti als usuaris iniciar sessió amb el seu correu electrònic i contrasenya. Implementa la funció loginUser
per gestionar l'inici de sessió.
Exercici 3: Afegir un botó de tancament de sessió
Afegiu un botó que permeti als usuaris tancar sessió. Implementa la funció logoutUser
per gestionar el tancament de sessió.
Solucions als exercicis
Solució a l'exercici 1
<form id="registerForm"> <input type="email" id="registerEmail" placeholder="Correu electrònic" required> <input type="password" id="registerPassword" placeholder="Contrasenya" required> <button type="submit">Registrar-se</button> </form> <script> document.getElementById('registerForm').addEventListener('submit', function(event) { event.preventDefault(); const email = document.getElementById('registerEmail').value; const password = document.getElementById('registerPassword').value; registerUser(email, password); }); </script>
Solució a l'exercici 2
<form id="loginForm"> <input type="email" id="loginEmail" placeholder="Correu electrònic" required> <input type="password" id="loginPassword" placeholder="Contrasenya" required> <button type="submit">Iniciar sessió</button> </form> <script> document.getElementById('loginForm').addEventListener('submit', function(event) { event.preventDefault(); const email = document.getElementById('loginEmail').value; const password = document.getElementById('loginPassword').value; loginUser(email, password); }); </script>
Solució a l'exercici 3
<button id="logoutButton">Tancar sessió</button> <script> document.getElementById('logoutButton').addEventListener('click', function() { logoutUser(); }); </script>
Conclusió
En aquesta secció, hem après com configurar l'autenticació amb correu electrònic i contrasenya utilitzant Firebase. Hem vist com registrar nous usuaris, iniciar sessió amb usuaris existents i tancar sessió. També hem abordat la gestió d'errors comuns i hem proporcionat exercicis pràctics per reforçar els conceptes apresos. En la següent secció, explorarem l'autenticació amb xarxes socials per oferir més opcions d'inici de sessió als usuaris.
Curs de Firebase
Mòdul 1: Introducció a Firebase
Mòdul 2: Autenticació de Firebase
- Introducció a l'autenticació de Firebase
- Autenticació amb correu electrònic i contrasenya
- Autenticació amb xarxes socials
- Gestió d'usuaris
Mòdul 3: Base de dades en temps real de Firebase
- Introducció a la base de dades en temps real
- Lectura i escriptura de dades
- Estructura de dades i regles de seguretat
- Capacitats fora de línia
Mòdul 4: Cloud Firestore
- Introducció a Cloud Firestore
- Model de dades de Firestore
- Operacions CRUD
- Consultes avançades
- Regles de seguretat
Mòdul 5: Emmagatzematge de Firebase
- Introducció a l'emmagatzematge de Firebase
- Carregar fitxers
- Descarregar fitxers
- Metadades de fitxers i seguretat
Mòdul 6: Missatgeria en el núvol de Firebase
- Introducció a la missatgeria en el núvol
- Enviar notificacions
- Gestionar notificacions
- Funcions avançades de missatgeria
Mòdul 7: Analítica de Firebase
Mòdul 8: Funcions de Firebase
Mòdul 9: Monitoratge del rendiment de Firebase
- Introducció al monitoratge del rendiment
- Configuració del monitoratge del rendiment
- Analitzar dades de rendiment