Decodificador JWT
Pega un JSON Web Token y visualiza de forma legible su cabecera (header), carga útil (payload) y la firma (signature). Decodificación base64url con soporte Unicode. La clave privada nunca es necesaria para leer el contenido.
Decodificación Base64url sin librería externa
El JWT usa Base64url, una variante de Base64 que reemplaza + por - y / por _, y omite el padding =. La función base64urlDecode() de la herramienta invierte estos cambios (restaura + y /, añade = hasta completar múltiplos de 4) y luego usa atob() para decodificar el string, pasando el resultado por TextDecoder para manejar caracteres Unicode correctamente. El método parseJwt() divide el token por ., decodifica header y payload como JSON, y detecta el campo exp para compararlo con Date.now().
JWT en APIs e integraciones de LATAM
En el ecosistema de desarrollo en América Latina, los JWT aparecen en prácticamente toda integración API moderna. Al conectar con la API de Mercado Libre, el flujo OAuth2 devuelve un access_token que es un JWT: decodificarlo revela el user_id, el scope y el tiempo de expiración, útil para saber cuándo refrescar el token. Pasarelas de pago como Conekta o Kushki usan tokens Bearer en sus webhooks. Al depurar por qué una petición devuelve 401 Unauthorized, decodificar el JWT aquí es el primer paso: verifica que el token no haya expirado (exp), que el scope incluya el permiso necesario y que el iss (issuer) sea correcto.
Otras herramientas
Preguntas frecuentes
- ¿Qué es un token JWT?
- JWT (JSON Web Token) es un estándar abierto para transmitir información de forma segura entre partes como un objeto JSON. Se usa habitualmente para autenticación en APIs REST. Tiene tres partes separadas por puntos: header.payload.signature.
- ¿Es seguro pegar mi token aquí?
- Todo el procesamiento es 100% local en tu navegador. El token nunca sale de tu dispositivo. Dicho esto, los JWT de producción son credenciales sensibles; úsalos solo en entornos seguros y evita compartirlos.
- ¿Puedo verificar la firma del token?
- No. Para verificar la firma se necesita la clave secreta (HMAC) o la clave pública (RSA/ECDSA), que nunca debes compartir. Esta herramienta solo decodifica el header y el payload, que son datos públicos en Base64url.
- ¿Cómo sé si mi token ha expirado?
- Si el payload contiene el campo "exp" (Unix timestamp de expiración), la herramienta lo detecta automáticamente y muestra si el token está vigente o expirado, junto con la fecha y hora exacta de vencimiento.
- ¿Qué algoritmos de firma muestra la herramienta?
- El algoritmo de firma (HS256, RS256, ES256, etc.) está en el header del token, en el campo "alg". La herramienta lo muestra junto con el tipo de token (typ). Solo se muestra, no se verifica.
- ¿Cómo se usa JWT en frameworks como Express, Laravel o Django?
- En Express.js se usa la librería jsonwebtoken: jwt.sign(payload, secret, { expiresIn: "1h" }) genera el token y jwt.verify(token, secret) lo valida. En Laravel, la librería Tymon/jwt-auth gestiona tokens con auth:api middleware. En Django, djangorestframework-simplejwt es el estándar. En todos los casos, el cliente envía el JWT en el header HTTP Authorization: Bearer <token> y el servidor lo valida en cada petición protegida. Esta herramienta ayuda a depurar qué contiene el payload en cada etapa.
- ¿Qué APIs de LATAM usan JWT para autenticación?
- La mayoría de APIs modernas en América Latina adoptan JWT como estándar: Mercado Libre emite access_token JWT para su API OAuth2; Conekta, Kushki y Culqi usan tokens Bearer en sus SDKs de pago; Stripe LATAM sigue el mismo patrón. Al integrar estas APIs, recibir el JWT y querer ver la fecha de expiración o el scope incluido sin configurar un entorno de debugging completo es un caso de uso frecuente para esta herramienta. También es útil cuando un webhook de Hotmart, DistroKid o cualquier plataforma SaaS incluye un JWT en la cabecera para validar la autenticidad del request.