Skip to main content

¿Qué es la autenticación?

La autenticación consiste en verificar “quién es” el usuario que accede. En una aplicación web, un formulario de login recibe correo y contraseña y, si son correctos, guarda la información del usuario en la sesión. En las siguientes solicitudes se identifica al usuario consultando esa sesión. La autenticación en Laravel se compone de dos conceptos: “guards” y “providers”.
  • Guard: define cómo autenticar al usuario en cada solicitud. Por defecto se usa el guard session, que gestiona el estado con sesión y cookies.
  • Provider: define cómo obtener al usuario desde la base de datos. Por defecto usa Eloquent.
El archivo de configuración de autenticación es config/auth.php. Con la configuración por defecto es suficiente para la mayoría de aplicaciones web.

Autenticación con starter kit

En Laravel, con solo elegir un starter kit al crear la aplicación con laravel new, se generan automáticamente las funciones de login, registro, restablecimiento de contraseña, etc. Es el método más recomendado.
1

Crear la aplicación

Crea la aplicación con el instalador de Laravel. Durante el proceso aparece un prompt para elegir el starter kit.
Puedes elegir entre React, Vue, Livewire y Svelte como starter kits. Elige según la pila técnica de tu equipo.
2

Instalar las dependencias del frontend

3

Preparar la base de datos

Después de comprobar la configuración de base de datos en .env, ejecuta las migraciones.
Se aplica la migración inicial que incluye la tabla users.
4

Iniciar el servidor de desarrollo

Al acceder a http://localhost:8000 en el navegador verás en la navegación los enlaces “Register” y “Log in”. Prueba a registrarte accediendo a /register.
Al usar un starter kit dispones de las siguientes funciones:
Todo el código generado por el starter kit (controladores, rutas, vistas) vive en tu propia aplicación. Puedes modificarlo y personalizarlo libremente.

Starter kits disponibles

React

Con React 19, TypeScript, Tailwind y shadcn/ui puedes crear una SPA moderna. Gracias a Inertia puedes usar React en el frontend manteniendo el enrutamiento del lado del servidor.

Vue

Adopta la Composition API de Vue, TypeScript, Tailwind y shadcn-vue. Igual que React, se integra con el servidor mediante Inertia.

Livewire

Utiliza Livewire, que permite construir UIs dinámicas solo con PHP. Ideal para equipos centrados en plantillas Blade o que no quieran usar un framework JavaScript. Incluye la librería de componentes Flux UI.

Svelte

Utiliza Svelte 5, TypeScript, Tailwind y shadcn-svelte. Combinado con Inertia permite construir una SPA moderna.

Fachada Auth

Con la fachada Auth puedes obtener la información del usuario autenticado y comprobar el estado de autenticación.

Obtener el usuario autenticado

En los controladores también puedes obtenerlo desde el objeto Request.

Comprobar el estado de autenticación

Auth::check() devuelve true o false según si el usuario ha iniciado sesión.
En plantillas Blade son cómodas las directivas @auth y @guest.

Protección de rutas

Para crear rutas accesibles solo a usuarios autenticados, usa el middleware auth.
Si un usuario no autenticado intenta acceder, se le redirige automáticamente a /login. Para proteger varias rutas de una vez, usa un grupo.
Si olvidas aplicar el middleware auth, los usuarios sin sesión podrán acceder. Asegúrate de aplicarlo en todas las rutas que deban protegerse.

Rutas solo para invitados

Para redirigir a los usuarios autenticados usa el middleware guest. Aplicándolo a las páginas de login y registro, los usuarios que ya han iniciado sesión se envían al dashboard.

Autenticación manual

Para implementar el login manualmente sin usar un starter kit, usa Auth::attempt().
Pasa un array de credenciales como primer argumento a Auth::attempt(). La contraseña se compara automáticamente con el hash guardado, así que pásala en texto plano. Para implementar la función “recordarme”, pasa true como segundo argumento.
Aunque implementes la autenticación manualmente, es recomendable inspirarse en el código del starter kit como referencia para una implementación segura.

Cierre de sesión

Para cerrar la sesión del usuario, llama a Auth::logout(). La buena práctica es invalidar la sesión y regenerar el token CSRF al mismo tiempo.
Usa el método POST en la ruta.
En la plantilla Blade, envía la solicitud POST con un formulario.

Resumen

Próximos pasos

Middleware

Aprende en detalle el funcionamiento del middleware auth y cómo crear middlewares propios.
Última modificación el 13 de julio de 2026