> Manuales > Manual del desarrollo de API con Laravel

Qué es Laravel Fortify, el paquete oficial de Laravel para construir las rutas y controladores para la autenticación de usuarios, especialmente adecuado si estás desarrollando un API con Laravel.

Laravel Fortify

En este artículo vamos a presentar un package de Laravel llamado Fortify, que nos permite componer todos los comportamientos del sistema de login de usuarios de Laravel, pero sin introducir ningún código de la parte de del frontend. Además podremos aprender cuáles son los primeros pasos una vez que ya tenemos claro que necesitamos usar Fortify en un proyecto Laravel.

Qué es Laravel Fortify

Laravel Fortify nos permite implementar la lógica de autenticación de aplicaciones Laravel de una manera absolutamente independiente del frontend. Es un paquete que instalaremos opcionalmente, si es que necesitamos autenticación en un proyecto y se encargará de registrar las rutas, controladores y otras piezas necesarias para autenticar usuarios en una aplicación.

Además, ofrece toda una serie de rutas extra, como las que serían necesarias para recordar la clave de los usuarios, la parte de verificación del email del usuario y otras cuestiones relacionadas. Incluso, aparte de todo lo anterior, también permite habilitar el doble factor de autenticación (Two Factor Authentication), cada vez más popular en las aplicaciones web, de una manera cómoda.

Fortify no introduce código del frontend

Fortify tiene la característica de no incluir ningún código frontend, al contrario que otros packages de Laravel, como Breeze o Jetstream. Fortify simplemente nos dará el código necesario para que el backend reciba las solicitudes de login o registro, y demás operativas de autenticación de usuarios, siendo nosotros los responsables de crear en nuestra aplicación frontend toda la operativa necesaria para comunicar con el usuario, como formularios, realizar las solicitudes, recibir las respuestas, mostrar el feedback al usuario, etc.

Por supuesto que si tenemos que hacer el código frontend tendremos un trabajo extra. Para ello tenemos los starter kits de Laravel, de los que hablaremos enseguida.

Por qué usar Laravel Fortify

El uso de Laravel Fortify es perfectamente opcional en una aplicación Laravel. De hecho hay paquetes como Laravel Breeze o Jetstream que serían más frecuentes en las aplicaciones Laravel habituales y que nos ahorran mucho más tiempo de desarrollo, ya que incluyen diversos "starter kits" con más piezas necesarias para el trabajo en la parte de autenticación, como por ejemplo los formularios para hacer el registro, el login, hacer el reset de la clave, etc.

Entonces ¿Por qué querríamos usar Fortify? Podrían haber distintos motivos, aunque principalmente:

Para sitios web es muy frecuente acabar usando un starter kit, aunque sea algo sencillo como Laravel Breeze y acabes reformulando parte del código y tus dependencias Frontend por otras más acordes a tus gustos, ya que los starter kits te ofrecen un buen punto para empezar bastante más sencillo y rápido. Donde verdaderamente le sacas más partido a Fortify es justamente en el desarrollo de proyectos de API. Luego tendrás una SPA / PWA / Movil App que estará generalmente en un proyecto aparte, donde eligirás las tecnologías y desarrollarás la personalización completa de la experiencia de usuario.

Fortify y Sanctum

Los packages Laravel Fortify y Laravel Sanctum irán muchas veces de la mano, ya que se complementan perfectamente.

Sanctum realiza toda la parte de la capa de autenticación de usuarios, ya sea por cookies y sesiones o por tokens de API Fortify ofrece toda la lógica y las rutas de autenticación para que la autenticación se realice

Debemos saber que Sanctum no registra ninguna ruta de la aplicación para permitir acciones necesarias como el login o el registro de usuarios. Para crear todas las rutas y comportamientos necesarios podríamos manualmente crear toda la serie de rutas y controladores que nos harían falta, pero también podemos apoyarnos en Laravel Fortify, lo que resultará mucho más conveniente y ágil.

Fortify es por debajo lo que usa Laravel Jetstream para funcionar. Solamente que Jetstream también te aporta toda la parte del código frontend.

Instalación de Laravel Fortify

Fortify no viene instalado de casa en los proyectos iniciales de Laravel. Para instalar Fortify tendremos que realizar una serie de acciones que vamos a resumir.

Comenzamos realizando la instalación de la dependencia mediante Composer. Para ello usamos el siguiente comando.

composer require laravel/fortify

Recuerda que si estás usando Laravel Sail todos los comandos siguientes serían con "sail" delante, algo como sail composer require laravel/fortify

Luego tenemos que publicar los archivos que permiten controlar las rutas de Fortify, para el login, registro, etc.

php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"

Por último realizaremos la ejecución de las migraciones.

php artisan migrate

Registrar el service provider de Fortify

Entre los archivos que hemos agregado en la instalación de Fortify encontraremos un ServiceProvider que tenemos que registrar. Se trata de la clase App\Providers\FortifyServiceProvider que tenemos que agregar al array de providers de config/app.php.

En el array de providers añadimos la siguiente línea:

App\Providers\FortifyServiceProvider::class,

Siguientes pasos con Fortify

Hasta aquí hemos instalado Laravel Fortify y tenemos ya con nosotros la serie de rutas de aplicación necesarias para trabajar con toda la parte de autenticación de usuarios en nuestro proyecto.

Para verificar que hemos conseguido el objetivo perseguido con la instalación de Laravel Fortify podemos comprobar la lista de rutas de aplicación con este comando:

php artisan route:list

Laravel Fortify

En el siguiente artículo vamos a abordar algunas configuraciones para Fortify que creo que son útiles, y en muchos casos necesarias, para los proyectos de API realizados mediante Laravel.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual