¿Qué es un JWT (JSON Web Token)?
Publicado el 5/9/2025 · 2 min de lectura · Herramientas para desarrolladores
Daniel Okonkwo — Desarrollador front-end y redactor de Tecnología en OneKitly
Rendimiento web · Formatos de archivo
Verificado con 2 fuentes
Un JSON Web Token (JWT) es un token compacto y firmado que lleva información entre partes en tres partes Base64url separadas por puntos: header.payload.signature. El payload contiene «claims» como un ID de usuario y una expiración; la firma prueba que el token no se manipuló. Es legible por cualquiera, así que nunca pongas secretos — la firma protege la integridad, no la confidencialidad.
Un JWT es un token compacto y firmado que lleva identidad entre servicios. Aquí tienes sus tres partes, su uso para autenticación y sus límites de seguridad.
Qué es un JWT
Un JWT es un token autónomo que un servidor puede entregar a un cliente para probar quién es, sin guardar una sesión en el servidor. Parece una larga cadena de tres bloques separados por puntos. Como lleva sus propios claims firmados, cualquier servicio que confíe en la clave de firma puede verificarlo por sí mismo — por eso es popular para autenticación sin estado entre APIs.
Las tres partes
Dividido por los puntos, un JWT tiene un header, un payload y una firma, cada uno en Base64url. El header nombra el algoritmo de firma y el tipo de token. El payload contiene los claims — estándar como sub (sujeto), exp (expiración) e iat (emitido en), más campos personalizados. La firma se calcula sobre el header y el payload con una clave secreta o privada, así que manipular cualquiera de los dos la rompe.
Cómo se usa
En un flujo típico, inicias sesión, el servidor firma un JWT con tu identidad y una expiración, y lo devuelve. Tu app lo adjunta a cada petición, normalmente en la cabecera Authorization como token «Bearer». El servidor revisa la firma y la expiración en cada petición en lugar de buscar una sesión, lo que escala bien entre varios servicios que comparten la clave.
Notas de seguridad
Un JWT está firmado, no cifrado, así que cualquiera que lo tenga puede decodificar y leer el payload — nunca guardes contraseñas ni datos sensibles ahí. Verifica siempre la firma en el servidor y rechaza tokens expirados; un token que no verificas no prueba nada. Mantén expiraciones cortas y, como un token válido da acceso hasta que expira, guárdalo con cuidado y ten forma de revocar o rotar claves.
Preguntas frecuentes
- ¿Un JWT está cifrado?
- No, por defecto. El payload solo está en Base64url y cualquiera puede leerlo. La firma protege la integridad, no la privacidad.
- ¿Puedo poner una contraseña en un JWT?
- No. Cualquiera puede decodificar el payload, así que incluye solo claims no sensibles como un ID y una expiración.
- ¿Cuáles son las tres partes de un JWT?
- Header, payload y firma — cada uno en Base64url y unidos por puntos.
Artículos que podrían interesarte
Todas las guías →Herramientas relacionadas
Fuentes
¿Has detectado un error en este artículo?