JSON Web Tokens (JWT) es una tecnología de estándar abierto (RFC 7519) que permite el intercambio seguro de información entre partes en forma de un objeto JSON. Esta información se puede verificar y confiar porque está firmada digitalmente. Los JWT se pueden firmar usando un secreto (con el algoritmo HMAC) o un par de claves pública/privada usando RSA o ECDSA.

En NodeJS, podemos usar paquetes como jsonwebtoken para trabajar con JWT. En este tutorial, exploraremos cómo generar un JWT en NodeJS.

Instalación

Para comenzar, necesitamos instalar el paquete jsonwebtoken. Puedes hacer esto usando npm (Administrador de paquetes de nodos) con el siguiente comando:

npm instala jsonwebtoken

Una vez instalado, puedes importarlo a tu archivo usando:

const jwt = require('jsonwebtoken');

Creando un JWT

Para crear un JWT, utilizamos la función sign() del paquete jsonwebtoken. Esta función acepta tres argumentos:

  1. La carga útil, que es un objeto JSON que contiene las reclamaciones. Los reclamos son declaraciones sobre una entidad (generalmente el usuario) e información adicional.
  2. El secreto, que es una cadena utilizada para firmar el token. Este secreto debe mantenerse a salvo y nunca debe exponerse.
  3. Las opciones, que es un objeto que contiene opciones adicionales como el algoritmo de firma y la validez del token.

Aquí tienes un ejemplo:

carga útil constante = {
  identificación: 1,
  nombre: 'John Doe',
  administrador: verdadero
};

const secreto = 's3cr3t';

opciones constantes = {
  caducaEn: '2h'
};

token const = jwt.sign(carga útil, secreto, opciones);

En este ejemplo, la carga útil contiene tres reclamos: id, nombre y administrador. El secreto es 's3cr3t' y el token caduca en 2 horas.

Comprobando un JWT

Una vez que crea un JWT, puede verificar su firma y decodificar la carga útil usando la función verificar() en el paquete jsonwebtoken. Esta función acepta tres argumentos:

  1. El token, que es la cadena JWT que desea verificar.
  2. El secreto, que es la misma cadena utilizada para firmar el token.
  3. Las opciones, que es un objeto que contiene opciones adicionales, como el algoritmo de firma.

Aquí tienes un ejemplo:

const decodificado = jwt.verify(token, secreto);

En este ejemplo, la función verificar() devuelve la carga útil decodificada si el token es válido. Si el token no es válido (por ejemplo, si la firma no coincide), la función arrojará un error.

Conclusión

Trabajar con JWT en NodeJS es simple y directo gracias al paquete jsonwebtoken. Este paquete proporciona funciones para crear y verificar JWT, lo que le permite implementar autenticación y autorización seguras en sus aplicaciones NodeJS.

Es importante recordar que los JWT son tan seguros como el secreto utilizado para firmarlos. Así que asegúrese de mantener su secreto a salvo y nunca exponerlo. Además, los JWT están codificados, no cifrados, lo que significa que cualquiera que obtenga el token podrá decodificar la carga útil. Por lo tanto, nunca coloques información confidencial en la carga útil de un JWT.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la función del paquete jsonwebtoken en NodeJS?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Trabajar con JSON Web Tokens (JWT) en NodeJS: Cómo validar un JWT en NodeJS 112

Siguiente página del libro electrónico gratuito:

Trabajar con JSON Web Tokens (JWT) en NodeJS: Cómo validar un JWT en NodeJS

Tiempo estimado de lectura: 4 minutos

Descarga la aplicación para obtener una certificación gratuita y escuchar cursos en segundo plano, incluso con la pantalla apagada.

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.