LARAVEL BREEZE: LA FORMA MÁS SIMPLE Y ELEGANTE DE AGREGAR AUTENTICACIÓN A TU PROYECTO

Breeze es un starter kit oficial de Laravel que implementa un sistema de autenticación completo, limpio y moderno, utilizando solo Blade y Tailwind CSS. Breeze es minimalista por diseño. Es perfecto cuando se quiere tener el control total y un stack ligero.

Características principales

  • Registro de usuarios
  • Login / Logout
  • Recuperación de contraseña
  • Verificación de email
  • Dashboard básico
  • Perfil de usuario, actualizar nombre, email y contraseña
  • Soporte completo para Blade y Tailwind CSS
  • Totalmente personalizable
  • Código limpio y fácil de entender

Cómo instalarlo

# Crear nuevo proyecto
composer create-project laravel/laravel mi-app
cd mi-app

# Instalar Breeze
composer require laravel/breeze --dev
php artisan breeze:install

# Opcional: con Alpine.js
php artisan breeze:install --pest

npm install && npm run dev

php artisan migrate
php artisan serve

Arquitectura Interna y Diseño Limpio

A diferencia de otros paquetes que ocultan la lógica en la carpeta "vendor", Breeze publica todo el código directamente en las carpetas del proyecto:
  • Controladores, "app/Http/Controllers/Auth/": Contiene controladores individuales y legibles para cada acción como "AuthenticatedSessionController.php" para el inicio de sesión.
  • Rutas, "routes/auth.php": Centraliza todas las rutas de autenticación de forma independiente, las cuales se cargan automáticamente en "routes/web.php".
  • Peticiones Validadas, "app/Http/Requests/Auth/": Incluye clases como "LoginRequest.php", encargadas de validar los datos de entrada y de gestionar el bloqueo por intentos fallidos.

Funcionalidades de Seguridad Avanzadas

Aunque es un paquete "mínimo", Breeze incluye por defecto configuraciones de seguridad esenciales para producción:
  • Protección contra ataques de fuerza bruta: El formulario de inicio de sesión bloquea automáticamente al usuario por un minuto tras acumular demasiados intentos fallidos consecutivos.
  • Confirmación de contraseña: Añade la funcionalidad para proteger rutas críticas, como cambiar la configuración de facturación, solicitando al usuario su contraseña de nuevo antes de continuar.
  • Cierre de sesión seguro: Utiliza peticiones POST protegidas con tokens CSRF para evitar ataques de falsificación de solicitudes en sitios cruzados.

Cómo Personalizar Laravel Breeze

Al tener acceso total al código fuente, adaptarlo a las reglas de negocio es un proceso directo.

Modificar Campos en el Registro

Si se desea solicitar un dato adicional a tus usuarios al registrarse, se deben seguir estos tres pasos:

Base de datos

Añadir el campo en el archivo de migración de usuarios, "database/migrations/...create_users_table.php":

//Ejemplo para añadir campo "telefono"
$table->string('telephone')->nullable();

Modelo

Permitir la asignación masiva agregando el campo en la propiedad "$fillable" dentro de app/Models/User.php"":

protected $fillable = ['npmbre', 'email', 'password', 'telefono'];

Controlador

Abrir "RegisteredUserController.php", añadir la regla de validación y guardar el nuevo campo:

$request->validate([
'name' => ['required', 'string', 'max::255'],
'phone' => ['nullable', 'string', 'max:20'],
// ... otras validaciones
]);

$user = User::create([
'name' => $request->name,
'phone' => $request->phone,
// ...
]);

Cambiar la Redirección Post-Login

Por defecto, al iniciar sesión, Breeze redirige al usuario a la ruta "/dashboard". Este comportamiento global se puede cambiar modificando la constante "HOME" en el fichero "app/Providers/RouteServiceProvider.php", o en el fichero de configuración correspondiente según la versión de Laravel, con la que se eté desarrollando:

public const HOME = '/mi-panel-personalizado';