¿Qué es un JWT y para qué se utiliza?
Un JWT (JSON Web Token) es un estándar abierto que define una forma compacta y autónoma de transmitir información de forma segura entre dos partes como un objeto JSON. Se utiliza comúnmente para autenticación y autorización en aplicaciones web y APIs. Cuando un usuario inicia sesión, el servidor genera un JWT que se envía al cliente y se usa para acceder a recursos protegidos, evitando tener que enviar credenciales constantemente.
¿Qué partes componen un JWT?
Un JWT consta de tres partes separadas por puntos: el Encabezado (Header), la Carga Útil (Payload) y la Firma (Signature). El Encabezado especifica el algoritmo de firma. La Carga Útil contiene los "reclamos" o datos, como el ID de usuario o permisos. La Firma se genera codificando el encabezado y la carga útil, y firmándolos con un algoritmo y una clave secreta para verificar que el token no ha sido alterado.
¿Cómo decodifico un JWT con esta herramienta?
Para decodificar un JWT, simplemente pegue el token completo en el campo de entrada de la herramienta y haga clic en el botón de decodificar. La herramienta separará automáticamente las tres partes, decodificará de Base64Url el Encabezado y la Carga Útil, y mostrará su contenido en formato JSON legible. La Firma no se puede decodificar, ya que es una verificación criptográfica.
¿La herramienta valida la firma del JWT?
No. Esta herramienta es un decodificador, no un validador. Solo decodifica las partes codificadas en Base64Url (Encabezado y Carga Útil) para que pueda inspeccionar su contenido. Para validar la firma y asegurarse de que el token es auténtico y no ha sido manipulado, necesita la clave secreta (para algoritmos HMAC) o la clave pública (para algoritmos RSA/ECDSA), lo que debe hacerse siempre en el entorno seguro del servidor.
¿Qué información puedo encontrar en la Carga Útil (Payload)?
En la Carga Útil encontrará los "reclamos" (claims), que son declaraciones sobre una entidad. Estos incluyen reclamos estándar como `iss` (emisor), `exp` (tiempo de expiración), `sub` (asunto) y `aud` (audiencia), así como reclamos personalizados definidos por la aplicación, como `userId`, `role` o `email`. Es importante no almacenar información sensible aquí, ya que la carga útil es decodificable por cualquiera.
Mi token JWT no se decodifica correctamente, ¿qué puede estar mal?
Hay varias causas posibles: 1) El token puede estar malformado o incompleto (debe tener tres partes separadas por puntos). 2) Puede contener caracteres no válidos o haber sido truncado al copiarlo. 3) La codificación Base64Url puede ser incorrecta. Asegúrese de copiar el token completo, incluyendo todas las partes, y verifique que no tenga espacios o saltos de línea adicionales. Si el problema persiste, el token podría estar corrupto.
¿Es seguro decodificar JWTs con herramientas en línea?
Para solo decodificar y visualizar el Encabezado y la Carga Útil, es generalmente seguro, ya que estas partes están solo codificadas (no encriptadas) y son legibles por cualquiera. Sin embargo, NUNCA debe introducir un JWT en una herramienta en línea que ofrezca validar la firma, ya que esto requeriría compartir su clave secreta. Para tareas de desarrollo e inspección, usar un decodificador local o esta herramienta de solo lectura es una práctica aceptable.