Imagen del artículo Trabajar con rutas en ExpressJS: trabajar con autenticación JWT en rutas

7.12. Trabajar con rutas en ExpressJS: trabajar con autenticación JWT en rutas

Página 58 | Escuchar en audio

7.12 Trabajar con rutas en ExpressJS: trabajar con autenticación JWT en rutas

ExpressJS es un marco de aplicación web para Node.js que proporciona una forma sólida de crear servidores web y API. Uno de los conceptos clave al trabajar con ExpressJS es el concepto de rutas. Las rutas son el camino que debe seguir el servidor para responder a una solicitud específica del cliente.

Para proteger las rutas y garantizar que solo los usuarios autenticados puedan acceder a ellas, podemos utilizar la autenticación JWT (JSON Web Token). JWT es un estándar (RFC 7519) que define una forma compacta y segura de pasar información entre partes como un objeto JSON. Esta información se puede verificar y confiar porque está firmada digitalmente.

Implementación de autenticación JWT en rutas

Para implementar la autenticación JWT en rutas ExpressJS, primero debemos instalar el paquete 'jsonwebtoken' usando npm (Node Package Manager). El comando para instalar este paquete es 'npm install jsonwebtoken'.

A continuación, necesitamos crear un middleware que verifique el token JWT en cada solicitud. Un middleware es una función que tiene acceso al objeto de solicitud (req), al objeto de respuesta (res) y a la siguiente función de middleware en el ciclo de solicitud/respuesta de la aplicación. La siguiente función de middleware se indica comúnmente mediante una variable llamada "siguiente".

A continuación se muestra un ejemplo de cómo podría verse un middleware de autenticación JWT:

const jwt = require('jsonwebtoken');

función authenticateToken(solicitud, res, siguiente) {
  const authHeader = req.headers['autorización'];
  token const = authHeader && authHeader.split(' ')[1];

  si (token == nulo) devuelve res.sendStatus(401); // si no hay token, devuelve un error 401

  jwt.verify(token, proceso.env.ACCESS_TOKEN_SECRET, (err, usuario) => {
    si (err) devuelve res.sendStatus(403); // si el token no es válido, devuelve un error 403
    req.usuario = usuario;
    próximo(); // pasa la ejecución al siguiente middleware
  });
}

El middleware 'authenticateToken' extrae el token del encabezado de autorización de la solicitud, verifica que el token esté presente y luego verifica que el token sea válido utilizando la función 'verificar' del paquete 'jsonwebtoken'. Si el token es válido, agrega el usuario al objeto de solicitud y pasa la ejecución al siguiente middleware.

Ahora, para asegurar una ruta con este middleware, todo lo que necesitamos hacer es agregar 'authenticateToken' como argumento a la función de ruta, como en este ejemplo:

app.get('/protected', authenticateToken, (req, res) => {
  res.send('Esta es una ruta protegida');
});

En este ejemplo, solo se puede acceder a la ruta '/protected' si el cliente envía un token JWT válido en el encabezado de autorización de la solicitud.

Conclusión

Trabajar con rutas en ExpressJS es una parte fundamental del desarrollo de API. Agregar autenticación JWT a las rutas le permite proteger ciertas partes de la API y garantizar que solo los usuarios autenticados puedan acceder a ellas. Si bien la implementación de la autenticación JWT puede parecer compleja al principio, se vuelve bastante sencilla una vez que comprende los conceptos básicos de cómo funcionan los tokens y el middleware JWT.

Esperamos que este capítulo haya proporcionado una descripción clara de cómo trabajar con rutas y autenticación JWT en ExpressJS. En el próximo capítulo, exploraremos funciones más avanzadas de ExpressJS y cómo se pueden utilizar para crear API más sólidas y seguras.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es el papel del middleware 'authenticateToken' en la implementación de la autenticación JWT en rutas ExpressJS?

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

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Trabajar con rutas en ExpressJS: trabajar con autorización de ruta

Siguiente página del libro electrónico gratuito:

59Trabajar con rutas en ExpressJS: trabajar con autorización de ruta

3 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 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.