Sobes.tech
Junior — Middle

¿Cuáles son las principales ventajas y desventajas de usar JSON Web Token para autenticación y autorización?

sobes.tech AI

Respuesta de la IA

Ventajas de JSON Web Token (JWT):

  • Autosuficiencia: JWT contiene toda la información necesaria para la autenticación y autorización, lo que permite no mantener estado en el servidor.
  • Escalabilidad: gracias a la ausencia de estado en el servidor, es fácil escalar las aplicaciones.
  • Facilidad de transmisión: JWT es una cadena compacta que es conveniente para transmitir en encabezados HTTP o en URL.
  • Seguridad: JWT puede ser firmado (por ejemplo, usando HMAC o RSA), lo que garantiza la integridad y autenticidad del token.

Desventajas de JWT:

  • Imposibilidad de revocación: después de emitir un JWT, no es fácil revocar el token antes de su expiración, a menos que se implemente un mecanismo adicional.
  • Tamaño del token: JWT puede ser bastante grande, especialmente si contiene muchos datos, lo que aumenta la carga en la red.
  • Seguridad del almacenamiento: si el token se almacena en el cliente (por ejemplo, en localStorage), puede ser vulnerable a ataques XSS.
  • Complejidad de actualización: actualizar los datos dentro del token requiere emitir un nuevo token.

Ejemplo de uso de JWT en Node.js:

const jwt = require('jsonwebtoken');

// Creación del token
const token = jwt.sign({ userId: 123 }, 'clave_secreta', { expiresIn: '1h' });

// Verificación del token
try {
  const payload = jwt.verify(token, 'clave_secreta');
  console.log(payload.userId);
} catch (e) {
  console.error('Token inválido o expirado');
}