Implementa autenticación en Laravel con confianza: desde el scaffolding básico de registro con Laravel UI hasta la protección de rutas API con Laravel Sanctum, pruebas automatizadas sin errores 401 y emisión de tokens seguros con un controlador de acción única. Todo con sesiones basadas en cookies, protección CSRF y defensa ante XSS para SPA.
Configuración de autenticación con Laravel UI y Sanctum
Para iniciar, Laravel ofrece varios tipos de autenticación. Primero, Laravel UI brinda un scaffolding básico para registro y acceso por web. Luego, Sanctum habilita autenticación para SPA y APIs con sesiones y cookies o con tokens personales.
¿Cómo habilitar el scaffolding de Laravel UI?
Instala el paquete y publica sus recursos con vendor publish.
Se generan una migración y un archivo de configuración.
Ejecuta las migraciones para preparar la base de datos.
En el modelo User añade el traitHasApiTokens para poder crear tokens.
useLaravel\Sanctum\HasApiTokens;classUserextendsAuthenticatable{useHasApiTokens;// habilita creación de tokens}
En el Kernel agrega el middleware de Sanctum en el grupo 'api' para solicitudes de SPA con cookies stateful, protección CSRF y defensa ante filtración de credenciales por XSS.
Si el usuario no existe o la contraseña no coincide, lanza una excepción de validación.
if(!$user||!Hash::check($data['password'],$user->password)){throwValidationException::withMessages(['email'=>'El email no existe o no coincide con nuestros datos.',]);}
Importa Hash por namespace y usa Hash::check para comparar la contraseña con el hash almacenado.
¿Cómo crear el token, ruta y probar el endpoint?
Crea el token con el trait HasApiTokens y retorna JSON.
Prueba con tu HTTP client: envía email, password y device_name a la ruta configurada. Si omites la contraseña, verás un mensaje de error de validación.
¿Quieres que revisemos tu configuración o tu flujo de pruebas con Sanctum? Cuéntame en los comentarios qué parte te gustaría profundizar y en qué entorno estás trabajando.