Pasar al contenido principal
Alexys Lozada
José Luján
Manuel Rodriguez
José Luján
Luis Avilés
Álvaro Felipe
José Luján
Beto Quiroga
Jonathan MirCha
Jonathan MirCha
Álvaro Felipe
Alexys Lozada, Álvaro Felipe, Jonathan MirCha
Beto Quiroga
Alexys Lozada
Alexys Lozada
José Luján
Álvaro Felipe
Álvaro Felipe
Jonathan MirCha
Jonathan MirCha
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Alexys Lozada, José Luján
Camilo Adobe
Álvaro Felipe
José Luján
Jonathan MirCha
Álvaro Felipe
Álvaro Felipe
Beto Quiroga, Alexys Lozada
Álvaro Felipe
Juan Villalvazo
Luis Avilés
Jonathan MirCha
Jonathan MirCha
Jonathan MirCha

Transmite información segura en Nodejs con JsonWebTokens

Los JsonWebTokens (JWT) son un estandar abierto que nos permite transmitir información de manera segura entre dos partes.

Transmite información segura en Nodejs con JsonWebTokens

Los JsonWebTokens (JWT) son un estandar abierto que nos permite transmitir información de manera segura entre dos partes, gracias a que es digitalmente firmado por un algoritmo HMAC o por una llave pública o privada.

Los usos más frecuentes que reciben los JWT son:

  • Autenticación
  • Intercambio de información

¿Que compone un JWT?

La estructura de un JWT se compone de tres partes:

  • Header
  • Payload
  • Signature

y a su vez estas partes se dividen siguiendo el siguiente formato:

xxxxx.yyyyyy.zzzzzz

Donde cada grupo de letras es a su vez una parte del JWT, las x el header, las y el payload y las z el signature.

Ya en la práctica un JWT se veria más como esto
 

JWT codificado

Header

El Header de un JWT generalmente contiene información sobre el tipo de JWT y que algoritmo se uso para su encriptación, por ejemplo:

{
  "alg": "HS256",
  "typ": "JWT"
}

Payload

El payload nos sirve para enviar informacion en el token, la cual puede ser de cualquier tipo, como por ejemplo información del usuario.
Un payload decodificado se veria algo asi:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Signature

El signature nos permite verificar si el token ha sido modificado o alterado en el camino y se genera con las dos partes anteriores (Payload, header) codificados en base64 y con una llave secreta.

¿Como crear un JWT?

Crear estos JWT en Node es bastante sencillo gracias a la librería jsonwebtoken la cual podemos instalar en cualquiera de nuestros proyectos con la siguiente línea en la consola:

npm install -S jsonwebtoken

Y para crearlo es tan fácil como ejecutar el método sign() de la siguiente manera:

const jwt = require('jsonwebtoken')

const payload = { id: 1,name: 'Alejandro', lastname: 'Garcia' }
jwt.sign(payload, 'SECRET_KEY', { expiresIn: 2days })

Lo que estamos haciendo aqui solo es ejecutar el metodo sign que trae ya implementado la libreria jsonwebtoken donde recibe por parámetro, un objeto que sera el payload que queremos enviar codificado en el token, en este caso estoy enviando data del usuario pero puede ser un objeto con cualquier tipo de información, en segundo lugar debes de poner tu llave secreta que puede ser cualquier string, por último y opcionalmente podemos ingresar el tiempo en el cual este token sera valido.

Y con esto ya habremos creado nuestro primer token listo para ser enviado a nuestro frontend para ser utilizado en los casos anterirmente mencionados.

Si quieres saber más sobre JWT te recomiendo visitar jwt.io.

Hasta la próxima.

Suscríbete al blog de EDteam

Ingresa tu correo electrónico para recibir nuestro boletín semanal