Contenido del curso

Manos a la obra con nuestro proyecto

Instala el login de Laravel con Breeze

Resumen

Configurar un sistema de inicio de sesión en Laravel deja de ser un dolor de cabeza cuando usas el componente oficial que el framework provee. Aquí aprenderás a instalar el paquete de autenticación, activar las rutas protegidas y separar el área administrativa de la pública con un botón de login funcional.

¿Qué componente usar para autenticación en Laravel?

Laravel ofrece un paquete que se instala vía Composer y deja lista toda la infraestructura de login: rutas, controladores, vistas y middleware.

El comando que ejecutas en la terminal es composer require laravel/breeze --dev. La bandera --dev es clave porque indica que el componente solo se usa en entorno de desarrollo, no en producción. Una vez instalado, al correr php artisan aparece un nuevo comando disponible para activar el sistema.

¿Por qué se instala con --dev? Porque el paquete genera scaffolding (vistas, rutas, controladores) durante el desarrollo. En producción ya no necesitas reinstalarlo, solo desplegar el código generado.

¿Cómo activar el scaffolding de login con Artisan?

Antes de ejecutar la instalación, respalda las rutas que ya tengas en tu archivo web.php, porque el comando las sobrescribe.

Luego corre php artisan con el comando de instalación que aparece tras añadir el paquete. El proceso es rápido y al finalizar te sugiere dos pasos siguientes para que el diseño funcione:

  • Ejecutar npm install para descargar todas las dependencias de JavaScript y CSS.
  • Ejecutar npm run dev para compilar los assets y dejarlos listos en la carpeta public.

Una vez termina, recupera tus rutas anteriores pegándolas de nuevo y ajusta lo necesario para conservar tu configuración previa.

¿Cómo mostrar el botón de login solo a usuarios no autenticados?

En la plantilla principal de tu proyecto añades una directiva Blade que verifica el estado de la sesión y decide qué enlace mostrar.

La directiva @auth evalúa si el usuario está logueado en la plataforma. Si lo está, muestras el acceso al dashboard usando la función route('dashboard') para generar la URL. Con @else defines el caso contrario: el botón que lleva al formulario de inicio de sesión. Cierras con @endauth.

blade @auth <a href="{{ route('dashboard') }}">Dashboard</a> @else <a href="{{ route('login') }}">Iniciar sesión</a> @endauth

Esta lógica es la base para separar el área pública del área administrativa. El visitante anónimo ve un botón de acceso, y el usuario autenticado ve un enlace directo a su panel.

¿Qué hace la directiva @auth en Blade? Verifica si hay un usuario con sesión activa. Si la respuesta es sí, ejecuta el bloque interno; si no, salta al @else.

¿Por qué el formulario aparece sin estilos al inicio?

Cuando haces clic en el botón de login y el formulario aparece sin diseño, es porque los assets de CSS y JavaScript todavía no han sido compilados.

Ahí entran los dos comandos sugeridos por Laravel. El primero, npm install, conecta tu proyecto a internet y descarga todo el JavaScript y CSS necesario en una carpeta que cumple la misma función que vendor para PHP, pero del lado del frontend. El segundo, npm run dev, compila esos archivos y los deposita dentro de public, generando las carpetas de CSS y JavaScript que antes no existían.

Después de ese paso, el formulario se ve correctamente estilizado y puedes probar el inicio de sesión con un usuario existente. Tomas su email de la base de datos, lo pegas en el formulario, escribes la contraseña (en entornos de prueba suele ser password) y entras al área administrativa.

Habilidades y conceptos clave de esta instalación

Dominar este flujo te da control sobre la autenticación de cualquier proyecto Laravel.

  • Composer con flag --dev: instala paquetes que solo necesitas durante desarrollo, optimizando el peso del proyecto en producción.
  • Artisan: la CLI de Laravel que ejecuta comandos del framework, incluido el de instalación de scaffolding de auth.
  • Directiva @auth de Blade: condicional nativo para mostrar contenido según el estado de sesión.
  • Función route(): genera URLs nombradas, evitando que escribas rutas absolutas que se rompan al cambiar la estructura.
  • npm install y npm run dev: gestionan dependencias de frontend y compilan los assets a la carpeta public.
  • Separación de área pública y administrativa: patrón que protege el dashboard tras login mientras mantiene accesible la home.

Si ya instalaste el paquete y lograste entrar al dashboard, cuéntame en los comentarios qué usuario de prueba creaste y si modificaste algo en la vista por defecto.