Los tokens web JSON (JWT) son una forma segura y eficiente 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.

Cuando desarrollas una aplicación web con NodeJS, puede que sea necesario almacenar un JWT en una cookie. Esto puede resultar útil para mantener a un usuario autenticado entre sesiones. A continuación se ofrece una descripción general de cómo puede hacer esto.

Instalación de las dependencias necesarias

Antes de comenzar a trabajar con JWT, necesita instalar algunas dependencias. Necesitará el paquete 'jsonwebtoken' para crear y verificar JWT. También necesitará el paquete 'cookie-parser' para trabajar con cookies. Puedes instalar estas dependencias usando npm (Node Package Manager):

npm instala el analizador de cookies jsonwebtoken

Creando un JWT

Después de instalar las dependencias necesarias, puede crear un JWT. Aquí tienes un ejemplo de cómo puedes hacer esto:

const jwt = require('jsonwebtoken');

dejar carga útil = {
  identificación: usuario.id,
  correo electrónico: usuario.correo electrónico
};

let secret = 'tu-clave-secreta';

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

En este ejemplo, la carga útil es un objeto que contiene información sobre el usuario. El secreto es una cadena que se utiliza para firmar el token. El método 'signo' devuelve el token JWT.

Almacenar un JWT en una cookie

Una vez que crea un JWT, puede almacenarlo en una cookie. Aquí tienes un ejemplo de cómo puedes hacer esto:

const cookieParser = require('analizador de cookies');

aplicación.use(cookieParser());

app.get('/iniciar sesión', (req, res) => {
  res.cookie('token', token, { httpOnly: verdadero });
  res.json({token});
});

En este ejemplo, el método 'cookie' se utiliza para crear una nueva cookie. El primer argumento es el nombre de la cookie, el segundo argumento es el valor de la cookie (el JWT) y el tercer argumento es un objeto de opciones. La opción 'httpOnly' está configurada en verdadero para evitar que se acceda a la cookie a través de scripts del lado del cliente.

Verificar un JWT

Una vez que almacena un JWT en una cookie, puede verificar el JWT. Aquí tienes un ejemplo de cómo puedes hacer esto:

app.get('/perfil', (req, res) => {
  dejar token = req.cookies.token;

  si (!token) {
    return res.status(401).json({ mensaje: 'No autorizado' });
  }

  jwt.verify(token, secreto, (err, decodificado) => {
    si (errar) {
      return res.status(401).json({ mensaje: 'No autorizado' });
    }

    res.json({usuario: decodificado});
  });
});

En este ejemplo, el JWT se extrae de la cookie. Si el JWT no está presente, la respuesta será un mensaje "No autorizado". Si el JWT está presente, se verifica mediante el método 'verificar'. Si la verificación tiene éxito, la respuesta es la carga útil decodificada.

Conclusión

Trabajar con tokens web JSON en NodeJS puede parecer complicado al principio, pero una vez que comprenda los conceptos básicos, descubrirá que es una forma poderosa y flexible de manejar la autenticación y la autorización. Recuerde que es importante proteger su secreto y configurar correctamente sus opciones de cookies para garantizar la seguridad de su aplicación.

Espero que este tutorial te haya resultado útil para comprender cómo trabajar con JWT en NodeJS y cómo almacenarlos en cookies. Si sigue los pasos descritos en este tutorial, podrá crear, almacenar y verificar JWT con éxito en su aplicación NodeJS.

Ahora responde el ejercicio sobre el contenido:

¿Qué se necesita para crear un JWT en una aplicación 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 proteger rutas con JWT en NodeJS 114

Siguiente página del libro electrónico gratuito:

Trabajar con JSON Web Tokens (JWT) en NodeJS: Cómo proteger rutas con 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.