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');
}