Autenticación de usuarios en Laravel
- Publicado el 13 diciembre, 2024
- Palabras: 1251
Laravel nos provee de varias maneras de poder autenticar a nuestros usuarios, lo cual lo hace un framework muy versátil en esta opción, pero a la vez nos plantea un mar de dudas a la hora de elegir cual es la opción que más nos convenien en nuestros caso. Vamos a intentar despejar algunas dudas.

Laravel viene con muchas formas de autenticar usuarios. Cuando instalas una nueva aplicación y deseas agregarle autenticación, tus opciones no están limitadas. Las opciones disponibles para autenticar usuarios dentro de Laravel son:
- Laravel Breeze
- Laravel Jetstream
- Laravel Fortify
- Laravel Sanctum
- Laravel Passport
Como podemos ver, hay muchos paquetes instalables que tienen como objetivo hacer que todo el proceso de autenticación sea simple y fácil para cualquier desarrollador. Sin embargo, a veces puede resultar abrumador determinar cuál usar. Este artículo tiene como objetivo cubrir qué es cada paquete y cuándo es una buena idea elegir uno sobre los demás.
#El Facade Auth como manera predeterminada de autenticarnos
Antes de echar un vistazo a los paquetes instalables que se pueden utilizar para autenticar a nuestros usuarios, puede ser importante tener en cuenta que Laravel puede autenticar a los usuarios sin tener que instalar ningún paquete adicional. Se puede utilizar el Facade Auth predeterminado que viene con el framework. Para usarlo, solo hay que asegurarse de que la base de datos tenga un registro del usuario que se desea autenticar; por lo tanto, podemos simplemente encontrar al usuario e iniciar sesión de la siguiente manera:
$user = User::where('email', 'email@example.com');
Auth::login($user);
Esto autenticará al usuario y creará la sesión según sea necesario. Tienes la libertad de crear cualquier lógica personalizada que quieras en torno a este facade. Una pequeña nota y algo para recordar es que todos los paquetes y opciones instalables disponibles dentro del ecosistema de Laravel harán uso de este facade y del método login() para generar sesiones de autenticación.
Para obtener más información sobre cómo Laravel maneja esto y lo que está disponible directamente desde el frameword, consulte la documentación completa.
#Laravel Breeze
Si busca una opción de autenticación sencilla y fácil de personalizar, Laravel Breeze es ideal para tí. Breeze es la opción más sencilla y personalizable de todas las disponibles en el ecosistema. Breeze le proporcionará lo siguiente de forma inmediata:
- Iniciar sesión
- Registro
- Restablecimiento de contraseñas
- Confirmación de contraseñas
- Gestión de perfiles
- Verificación de correo electrónico
Además, todo esto se entregará con las pruebas automatizadas. Para la mayoría de los proyectos, Breeze es el punto de partida perfecto. Al instalar Breeze, también puede elegir el tipo de proyecto que desea crear y el paquete creará las dependencias necesarias para usted. Esto hace que Breeze sea una excelente manera de comenzar un proyecto. ¿Necesita Livewire? Breeze instalará Livewire automáticamente y conectará toda la autenticación para usar Livewire. ¿Prefiere Inertia? Lo mismo; simplemente elija con qué pila desea trabajar al instalar y, a partir de ahí, estará listo para crear. ¡Muy bueno!
Para comenzar a utilizar Laravel Breeze, consulte la documentación completa.
#Laravel Jetstream
Laravel Jetstream es una versión más complicada de Breeze, ya que ofrece muchas más funciones disponibles para usar. Jetstream incluye lo siguiente:
- Iniciar sesión
- Registro
- Gestión de perfiles
- Restablecimiento de contraseñas
- Verificación de correo electrónico
- Autenticación de dos factores (2FA)
- Gestión de equipos (Teams)
- Gestión de sesiones del navegador
- Tokens y permisos de API
Al usar Jetstream de Laravel, puedes elegir qué funciones te gustaría tener habilitadas y puedes ampliarlas a medida que avanzas. La principal diferencia entre Jetstream y Breeze es la facilidad de uso. En mi opinión personal, Jetstream es un poco más difícil de personalizar, aunque es totalmente personalizable para alguien que sabe lo que está haciendo. Los documentos están repletos de ejemplos y métodos para anular el comportamiento predeterminado, por lo que si Jetstream te parece de tu agrado, te recomiendo comenzar por ahí.
Jetstream es una buena opción si buscas crear una aplicación web completa. Para comenzar a usar Laravel Jetstream y obtener más información sobre lo que puede hacer, consulta la documentación completa.
#Laravel Fortify
Laravel Fortify es una implementación de autenticación independiente del frontend. Esto significa que el paquete instalado proporcionará todas las herramientas de backend necesarias para comenzar con la autenticación, dejando todo el frontend de su aplicación en sus manos.
De manera predeterminada, Fortify proporcionará la implementación de backend para lo siguiente:
- Iniciar sesión
- Registro
- Gestión de contraseñas
- Autenticación de dos factores
- Verificación de correo electrónico
Ya hemos hablado de Laravel Jetstream, que utiliza Laravel Fortify para su implementación completa. Fortify es una gran opción para cualquiera que quiera empezar a utilizar la autenticación rápidamente pero prefiera manejar la lógica de autenticación sin estar acoplado a ninguna de las opciones de interfaz de usuario que vienen con las otras opciones de autenticación.
Instalar Fortify en su proyecto es sencillo y está completamente documentado, consulte la documentación completa.
#Laravel Sanctum
A diferencia de los otros métodos de autenticación descritos anteriormente, Sanctum es una forma de autenticar en función de tokens de API. Esto es realmente útil para aplicaciones basadas en API o SPA.
Al crear una SPA o API, el cliente (navegador) normalmente realiza una solicitud para recuperar un token de autenticación. Este token se pasa a solicitudes posteriores que le indican a la aplicación si el token tiene permiso para acceder a tipos específicos de datos. Laravel Sanctum ofrece una forma sencilla de crear estos tokens.
Sanctum es una excelente opción cuando se trabaja con aplicaciones móviles o se proporcionan puntos finales de API adicionales a una aplicación existente. El caso de uso de estos simples "tokens de acceso personal" es amplio y se puede aplicar en muchas circunstancias.
La instalación de Sanctum esencialmente solo instalará un Trait y un Middleware que se conectará a su sistema de autenticación existente. Esto le permite crear una interfaz de usuario de la aplicación utilizando uno de los métodos implementados anteriormente y luego implementar sanctum sobre él para cualquier cosa adicional.
Para obtener más información sobre Laravel Sanctum, así como instrucciones de instalación, consulte la documentación completa.
#Laravel Passport
Laravel Passport funciona de la misma manera que Sanctum. Sin embargo, la mayor diferencia es que Passport utiliza el protocolo OAuth. Por lo tanto, la aplicación deberá otorgar acceso antes de que se puedan realizar llamadas a la API. Piense en "Iniciar sesión con Facebook" o "Conectarse a GitHub", estos son ejemplos de OAuth.
Laravel Passport ofrece una forma para que los usuarios obtengan una clave API conectando su aplicación a su aplicación. Una vez que la conexión sea exitosa, se proporcionará una clave API para la conexión.
En la mayoría de los casos, no se prefiere Laravel Passport sobre Laravel Sanctum, y esto debe tenerse en cuenta al crear su aplicación. Passport solo debe usarse cuando el requisito sea crear un sistema OAuth. Es importante tener en cuenta que Passport requiere un conocimiento considerable y administración de servidores para mantenerlo en funcionamiento.
Una vez que Passport está instalado y se han generado las claves, funciona de la misma manera que Sanctum al proporcionar un middleware para autenticar las solicitudes.
Para obtener más información sobre Laravel Passport, consulte la documentación completa.
#¿Qué opción deberías elegir?
Con todas las opciones anteriores, podemos ver que es fácil sentirse abrumado por las opciones y, a veces, puede resultar difícil decidir cuál usar.
En mi opinión personal, si va a crear una aplicación desde cero, la mejor opción sería Laravel Breeze. Simplemente instálelo, publique todos los archivos y comience a trabajar en su próxima aplicación.
Si necesitas una autenticación de doble factor o gestión de equipos, ¡Laravel Fortify es para tí! Instale el paquete y ya puedes utilizar los nuevos métodos proporcionados.
Si necesita una API, utilice cualquiera de los métodos anteriores y agréguele Sanctum.
Sin embargo, en la mayoría de los casos, Laravel Breeze es el más fácil y simple de usar sin encerrarlo en fragmentos de código o metodologías ocultas.
El ecosistema de Laravel es amplio y cada uno de los paquetes anteriores se mantiene de forma activa, lo que significa que mejorarán con el tiempo. Esto hace que Laravel sea una buena opción para tu próxima aplicación. Con tantos enfoques de autenticación, los desarrolladores tienen la libertad de crear lo que quieran con toda la libertad que puedan necesitar.
Inicia la conversación
Hazte miembro de Antonio Jenaro para comenzar a comentar.
Regístrate ahora¿Ya estás registrado? Inicia sesión