Laravel 5.4: Guardar información de un usuario en un Token mediante JWT

4 minuto(s)

Demo Github

Parte fundamental de una Rest API es enviar la data por medio de un token el cual nos ayuda a mantener la seguridad de la información de los usuarios. Las aplicaciones en este caso para Android no soporta sesiones ni cookies, solo debemos almacenar la data del usuario en el celular via Shared, en este tutorial vamos a meter la información privada del usuario mediante JWT en Laravel 5.4, vamos con el tutorial.

Desplegando JWT

Voy a usar JWT hasta la actualidad es la mejor tecnología para enviar y recibir información privada entre 2 puntos, para este caso desde el servidor hasta la aplicación.

Fuente: jwt.io

Bien yo hice Fork a la librería tymon/jwt-auth a mi repositorio https://github.com/pepoflex/jwt-auth, allí esta su url real del repositorio, lo que hacemos es despegarla en nuestro proyecto Laravel 5.4, para ello abrimos nuestro archivo composer.json y lo instanciamos:


Abrimos nuestra consola de comando y ejecutamos el siguiente comando para actualizar los paquetes de nuestro proyecto:


Luego abrimos nuestro archivo app.php y colocamos en sus correspondientes lugares:

Providers:


Facades:


Paso seguido en nuestra consola de comandos ejecutamos el siguiente comando para publicar la libreria desplegada en nuestro proyecto:


Por ultimo ejecutamos el siguiente comando para generar un llave secreta para gestionar nuestros Tokens JWT:

Gestionando nuestro Middleware

Ejecutamos el siguiente comando para crear nuestro Middleware que nos da una capa de seguridad para restringir el acceso a ciertas partes de nuestra aplicación:


A este Middleware le agregamos la siguiente estructura:

VerifyJWTToken.php


Ahora abrimos nuestro archivo Kernel e instanciamos el Middleware VerifyJWTToken y el Middleware RefreshToken que actualiza a un token nuevo por cada request que haga tu aplicación:

 

Kernel.php

Ruta a mi Método Login

Creamos la ruta para que la aplicacion acceda y pueda leer el método login de nuestro controlador que crearemos en el paso siguiente. Abrimos el archivo api.php y colocamos la ruta:

Colocando la data en un token

Nota: Voy a exportar los datos del usuario en un token y aparte la la data pura en JSON para que puedan comparar los datos limpios y dentro de un token.

Creamos un controlador llamado ApiController:

ApiController.php


Paso seguido creamos nuestro objeto login para la autenticación de un usario, veamos:


Ejecuto mi ruta login en POSTMAN y obtengo mi JSON de datos:Ahora que ya tenemos copiaré el token y lo pegare en mi JWT debugger para decodificar la data de mi token, obtengo la data decodificada que contenía mi token:

Bien ahora lo único que te queda es almacenarla en tu aplicación y gestionar todos los datos del usuario mediante tokens.

Nota (s)

  • En un futuro la librería tymon/jwt-auth puede dejar de existir, ser modificada o continuar, esto no depende de nosotros si no de los Desarrolladores que dan soporte a este librería. 

 

Síguenos en las Redes Sociales para que no te pierdas nuestros próximos contenidos