JWT Decoder divide un token web JSON en sus tres segmentos separados por puntos, Base64url-Decodifica el encabezado y la carga útil, y los representa como JSON formateados. Los JWT no están encriptados, la "codificación" es solo base64URL, una transformación reversible, por lo que cualquiera que tenga una ficha puede leer todos los reclamos que contiene. Esta herramienta hace que la inspección sea instantánea: pegue un token desde un encabezado de cookie set, un encabezado de autorización (el prefijo portador se elimina automáticamente) o el panel de control de su proveedor de autenticación, y vea exactamente qué puso allí su servidor.
La tabla de reclamos es donde realmente ocurre la depuración. Las reclamaciones de tiempo registrados (exp (caducidad), IAT (emitidos en) y NBF (no antes) son marcas de tiempo de UNIX, inútiles para leer RAW. El decodificador convierte cada uno en una fecha humana y una hora relativa ("hace 3 horas", "expira en 14 minutos") y las banderas caducaron en rojo. La mayoría de los incidentes de "401 no autorizados, pero el token se ve bien" se reducen a una EXP vencida, un NBF sesgado por reloj o una afirmación de AUD que no coincide con lo que valida la API, todo visible aquí en dos segundos.
Una cosa que esta herramienta no hace deliberadamente: verificar las firmas. La verificación requiere el secreto de firma (HS256) o la clave pública (RS256/ES256), y una herramienta del lado del cliente que le pida que pegue un secreto de HMAC sería enseñar malos hábitos. La decodificación es 100% del lado del cliente: el token nunca sale de su navegador, no llega a ningún servidor y aparece en ningún registro de solicitud, lo que importa porque un JWT de producción en vivo es una credencial de portador. Cualquiera que lo tenga, eres tú.
Suelte el JWT en el área de entrada. Agárralo del encabezado de autorización en la pestaña de la red de DevTools de su navegador, una cookie, localStorage o una respuesta de curl. Un prefijo "portador" principal y el espacio en blanco circundante se eliminan automáticamente, por lo que puede pegar el valor de encabezado completo sin limpiar.
Ambos segmentos se representan como JSON formateados uno al lado del otro. El encabezado le dice el algoritmo de firma (ALG: RS256, HS256, etc.) e ID de clave (niño): útil cuando su rotación de JWK se está portando mal. La carga útil contiene las reclamaciones: sub, ISS, AUD, ámbitos, roles y cualquier dato personalizado que haya agregado su capa de autenticación.
Las reclamaciones de tiempo (EXP, IAT, NBF) se decodifican de segundos de Unix en fechas legibles con tiempos relativos. Un EXP vencido se muestra en rojo con exactamente cuánto tiempo caducó; uno válido se muestra en verde con tiempo restante. Si NBF está en el futuro, generalmente sesgado por el reloj entre sus servidores, el token se rechazará aunque "se ve" bien.
Esta herramienta nunca comprueba la firma, que requiere la clave pública o secreta y pertenece a su servidor, no a una herramienta de navegador. Nunca trate las reclamaciones decodificadas como entrada de confianza: un atacante puede acuñar un token con cualquier carga útil que desee. Solo una firma verificada demuestra que las reclamaciones provinieron de su emisor sin modificar.
Base64URL Decodificación en Pure TypeScript: ambos segmentos JSON formateados y legibles de inmediato
Reclamo EX marcado en rojo cuando está caducado, verde cuando es válido, con tiempo relativo exacto de cualquier manera
EXP, IAT y NBF convertidos de RAW UNIX Seconds a fechas ISO y frases de estilo "hace 3 horas"
Pegue todo el encabezado de la autorización: "portador" y espacios en blanco perdidos se eliminan automáticamente
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes from any text
Encode and decode text to/from Base64 format
Convert between Unix timestamps and human-readable dates
Format, validate, and minify JSON data
0 comments
No comments yet. Be the first to share your thoughts!