Cómo agregar verificación de correo electrónico y recuperación de contraseña en Firebase Auth

Firebase Authentication no solo permite registrar e iniciar sesión con correo y contraseña, sino que también ofrece herramientas esenciales para proteger tu aplicación y mejorar la seguridad del usuario: la verificación del correo electrónico y la recuperación de contraseña.

En esta guía aprenderás cómo:

  • Enviar correos de verificación al registrar un usuario

  • Comprobar si el correo ha sido verificado

  • Enviar correos de recuperación de contraseña

Estas funcionalidades no solo mejoran la seguridad, sino también la confianza y experiencia de tus usuarios.

🚀 Paso 1: Verificar el correo electrónico después del registro

Después de registrar un usuario, puedes enviarle un correo de verificación con:

import 'package:firebase_auth/firebase_auth.dart';

Future<void> registrarUsuario(String email, String password) async {
final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: email,
password: password,
);

// Enviar correo de verificación
await credential.user?.sendEmailVerification();
}

🔐 Comprobar si el correo fue verificado

Para restringir el acceso solo a usuarios con correo verificado:

final user = FirebaseAuth.instance.currentUser;

if (user != null && user.emailVerified) {
// Acceso permitido
} else {
// Mostrar mensaje o forzar verificación
}

🔄 Para actualizar el estado de verificación sin reiniciar la app:

await user?.reload();

📦 Paso 2: Enviar correo de recuperación de contraseña

Si el usuario olvidó su contraseña, puedes enviar un email con un enlace de restablecimiento:

Future<void> recuperarContrasena(String email) async {
await FirebaseAuth.instance.sendPasswordResetEmail(email: email);
}

Puedes usarlo en un formulario de “¿Olvidaste tu contraseña?” en tu app:

TextField(
controller: emailController,
decoration: InputDecoration(labelText: 'Correo electrónico'),
),
ElevatedButton(
onPressed: () {
recuperarContrasena(emailController.text.trim());
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Se envió un enlace de recuperación')),
);
},
child: Text('Recuperar contraseña'),
),

🎯 Buenas prácticas recomendadas

  • Siempre verifica si el correo del usuario ha sido confirmado antes de permitir el acceso completo.

  • Personaliza los mensajes de confirmación o recuperación desde Firebase Console > Plantillas de correo electrónico.

  • Agrega mensajes claros en la app indicando cuándo deben revisar su bandeja de entrada (y carpeta de spam).

🎉 Conclusión

Agregar verificación de correo y recuperación de contraseña con Firebase Auth es sencillo pero crucial para garantizar la seguridad y profesionalismo de tu aplicación Flutter. Estas funciones ayudan a proteger la identidad de los usuarios y a evitar accesos no autorizados.

Comentarios

Entradas más populares de este blog

Cómo integrar Firebase Analytics en tu aplicación Flutter para obtener métricas avanzadas de usuarios

Cómo gestionar el estado de autenticación y proteger las rutas de tu app Flutter

Cómo manejar notificaciones push avanzadas con Firebase Cloud Messaging y Flutter