La autenticación es el proceso de verificar la identidad de quien intenta acceder a una aplicación.
Los starter kits oficiales incluyen las rutas, acciones y pantallas necesarias para registro, inicio de sesión, recuperación de contraseña y verificación de correo. Todos se apoyan en Laravel Fortify para la lógica de autenticación.
Crear el proyecto con autenticación
Elige el starter kit durante la creación de una aplicación nueva. Si todavía no tienes el instalador, añádelo con Composer:
composer global require laravel/installer
laravel new mi-super-appEl asistente te preguntará qué interfaz quieres usar. Elige Livewire si prefieres seguir cerca de Blade y PHP, o React, Vue o Svelte si quieres una interfaz JavaScript. Después instala los recursos y arranca el entorno:
cd mi-super-app
npm install && npm run build
composer run devEl starter kit ya incorpora las migraciones y el código de autenticación dentro del proyecto, por lo que puedes modificarlo. Si la base de datos no se ha migrado durante la instalación, ejecuta:
php artisan migrateFunciones disponibles
Según las opciones habilitadas en config/fortify.php, tendrás rutas para login, registro, cierre de sesión, recuperación de contraseña, verificación de correo y autenticación en dos pasos. Puedes comprobarlas con:
php artisan route:listProteger rutas con middleware
Ahora que tienes usuarios, querrás que ciertas páginas (como /panel-secreto o /crear-producto) solo sean visibles para gente logueada.
En Laravel, esto se hace con Middleware. Es un “segurata” que se pone en la puerta de la ruta.
En routes/web.php:
// Ruta pública (cualquiera entra)
Route::get('/', function () {
return view('welcome');
});
// Ruta protegida (solo usuarios logueados)
Route::get('/panel', function () {
return view('panel_secreto');
})->middleware(['auth']); // <--- EL SEGURATASi un usuario no logueado intenta entrar a /panel, Laravel lo detecta y lo redirige automáticamente al Login.
Acceder al usuario autenticado
¿Cómo sabes quién está visitando la web para poner “Hola, Juan”?
Laravel ofrece un “helper” global llamado auth().
En el Controlador o PHP:
$usuario = auth()->user();
echo $usuario->name; // "Juan"
echo $usuario->email; // "[email protected]"
echo $usuario->id; // 1En la Vista (Blade):
@auth
<p>Bienvenido, {{ auth()->user()->name }}</p>
<form action="{{ route('logout') }}" method="POST">
@csrf
<button type="submit">Cerrar Sesión</button>
</form>
@endauth
@guest
<p>Hola invitado, por favor <a href="/login">inicia sesión</a>.</p>
@endguest