¿Qué es un Token JWT? (Estructura y Cómo Funciona)
Los JWT son el caballo de batalla silencioso de la autenticación moderna. Parecen tres cadenas separadas por puntos, pero codifican una reivindicación de identidad más una firma. Esta guía decodifica la estructura, muestra qué está protegido y qué no, y explica cómo inspeccionar uno con seguridad.
¿Cuáles son las tres partes separadas por puntos de un JWT?
Un JWT es header.payload.signature. El header suele registrar el algoritmo de firma y el tipo. El payload guarda reivindicaciones como sub (subject), iat (issued at) y exp (expiration). La firma es la parte que permite a un servidor verificar que el token no fue manipulado.
¿Qué está firmado y qué debe permanecer en secreto?
Solo la firma prueba la integridad. El header y el payload están codificados, no cifrados, así que cualquiera puede leer su contenido. Nunca pongas secretos en un payload de JWT. La firma se calcula con una clave secreta (HS256) o un par de claves pública/privada (RS256) conocido solo por el servidor.
¿Cómo se usa un JWT?
Un cliente recibe un token tras iniciar sesión y lo envía en cada petición, normalmente en un header Authorization. El servidor verifica la firma y las reivindicaciones, y confía en la identidad sin consultar al usuario otra vez. Esa ausencia de estado es por la que los JWT escalan bien entre muchos servicios.
¿Cómo leer expiración y validación en un JWT?
La reivindicación exp dice cuándo un token deja de ser válido y iat cuándo empezó. Un decodificador convierte esos timestamps en fechas legibles para que veas de un vistazo si un token está expirado, emitido recientemente o ya obsoleto.
¿Cómo decodificar un JWT sin comprometerlo?
Solo necesitas el payload y el header para inspeccionar un token, lo que hace segura la decodificación siempre que ocurra en tu navegador. Decodifica el header, el payload y la firma de cualquier token con el decodificador JWT, que convierte las fechas de expiración y resalta el JSON.