JWT (Json Web Tokens), nos permite representar los datos del usuario de forma segura. La autenticación JWT es usada cuando trabajamos con una API. Cuando el usuario inicia sesión usando su email y contraseña, se devuelve un token. Este token se usa en las posteriores llamadas a la API. El token es enviado en las cabeceras de las peticiones protegidas de la API.
En este post vamos a implementar el sistema de autenticación JWT en un proyecto Laravel 5.6

jwt laravel 5.6
Creamos un proyecto Laravel 5.6 nuevo desde composer:
composer create-project laravel/laravel lr-jwt-auth 5.6 --prefer-dist
También una base de datos de la que haga uso y agregamos las credenciales de esta al fichero .env del proyecto para poder establecer conexión con ella.
Contenidos de la página
1. Agregar dependencias.
Agregamos al fichero composer.json las siguientes dependencias:
“require”: { ... “tymon/jwt-auth”: “1.0.0-rc.2” ... },
Y ejecutamos el comando composer update desde la consola para que sean descargadas al proyecto.
2. Configurar JWT Auth
Añadimos el JWT Service Provaider y Facades. Abrimos el fichero config/app.php y agreamos al array provider:
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
Y al array aliases el jwt-auth facades como:
'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,
Ahora publicamos los ficheros de configuración de vendor al proyecto:
php artisan vendor:publish --provider=”Tymon\JWTAuth\Providers\LaravelServiceProvider”
Se habrá generado el fichero config/jwt.php que permite configurar los aspectos básicos de este paquete. Generamos la clave secreta con:
php artisan jwt:secret
3. Crear validación de formulario para cada petición de registro
php artisan make:request RegisterFormRequest
Escribimos las reglas de validación indicadas a continuación:
Actualizamos el modelo del Usuario app/User.php con lo siguiente:
4. Crear el controlador para los métodos login, registro y logout
php artisan make:controller AuthController
Copiamos todas las funciones que se indican en el siguiente fragmento:
Con esto ya tenemos todas las funciones correspondientes al inicio de sesión, registro, obtención de datos y cerrar sesión incluidas.
5. Rutas
Ahora tenemos que dar de alta las siguientes rutas en el fichero routes/api.php:
- La ruta /auth/user devuelve la información del usuario logueado. Evidentemente requiere que el usuario haya sido logueado.
- La ruta /token/refresh comprueba que el token actual es valido y si lo es, refresca el token.
6. Probar en Postman
Captura realizando login desde Postman:
Una vez logueado, podemos usar dicho token para realizar futuras peticiones donde se requiere estar logueado, por ejemplo:
Deja un comentario
Lo siento, debes estar conectado para publicar un comentario.