JSON Web Tokens (JWT) es un estándar abierto (RFC 7519) que define una forma compacta y autónoma de pasar información entre partes como 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.

Al crear API en NodeJS, JWT desempeña un papel crucial en la autenticación y autorización. Permite a los usuarios autenticarse y, una vez autenticados, reciben un JWT. Este token se utiliza luego para autorizar al usuario a acceder a rutas, servicios y recursos permitidos con este token. Esto convierte a JWT en una herramienta indispensable para crear API seguras.

Implementar JWT en NodeJS es bastante sencillo, gracias a paquetes como jsonwebtoken. Para comenzar, necesita instalar el paquete jsonwebtoken usando npm.


npm instala jsonwebtoken

Una vez instalado, puede importar el paquete a su archivo y comenzar a usarlo para crear y verificar tokens.


const jwt = require('jsonwebtoken');

Para crear un token, utiliza el método sign(). Este método acepta tres argumentos: la carga útil, el secreto y las opciones. La carga útil es el objeto que contiene las reclamaciones. Los reclamos son declaraciones sobre una entidad (generalmente el usuario) e información adicional. El secreto es la clave secreta que se utiliza para firmar el token. Las opciones se utilizan para establecer otras propiedades del token, como el algoritmo de firma y la caducidad del token.


let carga útil = {nombre de usuario: 'usuario'};
let secreto = 'alguna clave secreta';
let token = jwt.sign(carga útil, secreto, {expiresIn: '1h'});

Para verificar un token, utiliza el método verificar(). Este método acepta tres argumentos: el token, el secreto y una función de devolución de llamada. La función de devolución de llamada se llama con el resultado de la verificación.


jwt.verify(token, secreto, función(err, decodificado) {
  si (errar) {
    console.log('Error en la verificación del token');
  } demás {
    console.log('Token verificado exitosamente');
  }
});

Una cosa importante a tener en cuenta es que siempre debes proteger el secreto utilizado para firmar el token. Si alguien tiene acceso a su secreto, puede firmar tokens él mismo, lo que puede provocar graves problemas de seguridad.

Además, siempre debe verificar el token antes de permitir que el usuario acceda a rutas, servicios o recursos protegidos. Esto se puede hacer utilizando middleware que verifique el token en cada solicitud.


función authenticateToken(solicitud, res, siguiente) {
  token const = req.headers['autorización'];
  si (token == nulo) devuelve res.sendStatus(401);

  jwt.verify(token, secreto, (err, usuario) => {
    si (err) devuelve res.sendStatus(403);
    req.usuario = usuario;
    próximo();
  });
}

En resumen, JWT es una poderosa herramienta para la autenticación y autorización en las API de NodeJS. Le permite crear tokens que pueden usarse para autenticar usuarios y autorizarlos a acceder a rutas, servicios y recursos. Implementar JWT en NodeJS es sencillo gracias a paquetes como jsonwebtoken.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es la función principal de los JSON Web Tokens (JWT) en la creación de API 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: ¿Qué son los JSON Web Tokens (JWT)? 110

Siguiente página del libro electrónico gratuito:

Trabajar con JSON Web Tokens (JWT) en NodeJS: ¿Qué son los JSON Web Tokens (JWT)?

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.