Sobre el proyecto
jsonwebtoken es una implementación ampliamente utilizada en Node.js de JSON Web Tokens (RFC 7519) desarrollada por Auth0. Permite autenticación y autorización seguras basadas en tokens en aplicaciones Node.js.
Capacidades clave:
- **Firma de tokens (jwt.sign)**: Crea JWT con reclamaciones de carga útil (exp, nbf, aud, iss, sub, jti, iat) usando algoritmos simétricos (HMAC) o asimétricos (RSA, ECDSA, RSA-PSS). Admite operación síncrona y asíncrona. Las opciones incluyen selección de algoritmo (HS256 por defecto), tiempos de expiración (expiresIn, notBefore), encabezados personalizados, identificadores de clave y permisos de tamaños de clave inseguros para claves RSA heredadas.
- **Verificación de tokens (jwt.verify)**: Valida firmas y reclamaciones de tokens. Acepta secretos, claves públicas PEM o una función de devolución de llamada para obtener claves (útil con puntos finales JWKS). Valida algoritmos, audiencia, emisor, ID de JWT, asunto, expiración (con clockTolerance), not-before y edad máxima del token. Devuelve la carga útil decodificada o el objeto de token completo (encabezado, carga útil, firma) cuando se establece la opción complete.
- **Decodificación de tokens (jwt.decode)**: Inspecciona la carga útil y el encabezado del token sin verificación de firma (no apto para entradas no confiables).
- **Algoritmos admitidos**: HS256, HS384, HS512 (HMAC); RS256, RS384, RS512 (RSASSA-PKCS1-v1_5); PS256, PS384, PS512 (RSASSA-PSS, Node ≥6.12.0/≥8.0.0); ES256, ES384, ES512 (ECDSA); y "none" (sin seguridad).
- **Manejo de errores**: Tipos de error diferenciados (TokenExpiredError, JsonWebTokenError, NotBeforeError) con propiedades detalladas para manejo programático.
- **Notas de seguridad**: Módulo RSA mínimo de 2048 bits aplicado por defecto; secretos codificados en base64 admitidos mediante Buffer.from; las cargas útiles de fuentes no confiables deben ser saneadas.
La biblioteca tiene licencia MIT, es mantenida por Auth0 y se integra con soluciones de gestión de claves como node-jwks-rsa para claves rotativas. Existen guías de migración para actualizaciones de versiones principales.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.