Autenticación con JWT en JSON Server
Introducción
En este artículo te explico como crear un API Rest completa junto a faker.js para que puedas hacer tus pruebas sin muchas complicaciones.
Como ampliación me parece muy interesante añadir a nuestra API Rest seguridad, así que en este nuevo artículo vamos a usar JWT para agregar un sistema de autenticación por token.
Voy a dar por sentado que tanto json-server (imprescindible) como faker.js (opcional) está(n) instalado(s).
Ampliación JSON server
Quiero aprovechar para hacer una pequeña ampliación sobre algunas funciones avanzadas que ofrece json-server, porque en el artículo anterior solo probamos el CRUD.
Para no extenderme mucho voy añadir el código que genera los datos falsos y el indice con las funciones avanzadas que podemos hacer en JSON Server:
Para obtener mas información puedes ir a la siguiente url
Añadiendo la autenticación JWT
Lo primero que tenemos que hacer es instalar el paquete jsonwebtoken
npm i jsonwebtoken –save
Una vez terminada la instalación crearemos un fichero que usaremos configurar nuestra API REST junto a JWT. En el siguiente enlace puedes acceder al repositorio.
No obstante voy añadir el código completo con una pequeña explicación.
servidor.js
El fichero para la base de datos lo he generado con el siguiente script en NodeJS (db.js) :
Para generar nuestra base de datos usaremos el siguiente comando:
node db.js > db.json
Y para finalizar, la tabla de los usuarios es un fichero JSON con unos mínimos datos:
Cuando tengamos todo el proyecto preparado usaremos el siguiente comando para iniciar nuestro servidor:
node servidor.js
A continuación unas pruebas del funcionamiento de JWT:
Ahora con el usuario y la contraseña validos: