[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"mega-menu-categories-es":3,"blog-que-es-un-jwt-token-es":71},[4,23,39,55],{"id":5,"articulosRelacionados":6,"descripcion":7,"extension":8,"icono":9,"meta":10,"nombre":11,"seo":12,"slug":20,"stem":21,"__hash__":22},"categories\u002Fes\u002Fcategories\u002Fcalculadoras.yml",null,"Calculadoras online gratis para matemáticas, finanzas y ciencia, sin instalar nada.","yml","calculator",{},"Calculadoras",{"title":13,"description":14,"canonical":15,"og":16},"Calculadoras online gratis","Calcula operaciones matemáticas, científicas y financieras gratis, directamente desde tu navegador.","\u002Fherramientas\u002Fcalculadoras",{"title":13,"description":17,"image":18,"type":19},"Calcula operaciones matemáticas, científicas y financieras gratis desde tu navegador.","\u002Fog\u002Fcategorias\u002Fcalculadoras.png","website","calculadoras","es\u002Fcategories\u002Fcalculadoras","lniKJE6PhHDVGH50kYFnkZdCqM5jEElIIKWjj1eONhw",{"id":24,"articulosRelacionados":6,"descripcion":25,"extension":8,"icono":26,"meta":27,"nombre":28,"seo":29,"slug":36,"stem":37,"__hash__":38},"categories\u002Fes\u002Fcategories\u002Fimagen.yml","Herramientas para comprimir, convertir y editar imágenes online.","image",{},"Imagen",{"title":30,"description":31,"canonical":32,"og":33},"Herramientas de imagen gratis online","Comprime, convierte y edita imágenes gratis desde el navegador, sin instalar nada.","\u002Fherramientas\u002Fimagen",{"title":30,"description":34,"image":35,"type":19},"Comprime, convierte y edita imágenes gratis desde el navegador.","\u002Fog\u002Fcategorias\u002Fimagen.png","imagen","es\u002Fcategories\u002Fimagen","4IuvPQDnF3XHqE2pP_bHebx-HDOjC9S_l9gvm-B4XmE",{"id":40,"articulosRelacionados":6,"descripcion":41,"extension":8,"icono":42,"meta":43,"nombre":44,"seo":45,"slug":52,"stem":53,"__hash__":54},"categories\u002Fes\u002Fcategories\u002Fpdf.yml","Herramientas para crear, convertir, combinar y editar archivos PDF.","document-pdf",{},"PDF",{"title":46,"description":47,"canonical":48,"og":49},"Herramientas PDF gratis online","Combina, divide, comprime y convierte archivos PDF gratis desde el navegador, sin instalar nada.","\u002Fherramientas\u002Fpdf",{"title":46,"description":50,"image":51,"type":19},"Combina, divide, comprime y convierte archivos PDF gratis desde el navegador.","\u002Fog\u002Fcategorias\u002Fpdf.png","pdf","es\u002Fcategories\u002Fpdf","COy_iB2toL1LqgS2B0PRsRYEgowzgH3frmfBBWS0uno",{"id":56,"articulosRelacionados":6,"descripcion":57,"extension":8,"icono":58,"meta":59,"nombre":60,"seo":61,"slug":68,"stem":69,"__hash__":70},"categories\u002Fes\u002Fcategories\u002Ftexto.yml","Herramientas para transformar, codificar y analizar texto online.","string-text",{},"Texto",{"title":62,"description":63,"canonical":64,"og":65},"Herramientas de texto online gratis","Codifica, decodifica y transforma texto gratis, directamente desde tu navegador, sin instalar nada.","\u002Fherramientas\u002Ftexto",{"title":62,"description":66,"image":67,"type":19},"Codifica, decodifica y transforma texto gratis desde tu navegador.","\u002Fog\u002Fcategorias\u002Ftexto.png","texto","es\u002Fcategories\u002Ftexto","z_t2PFPdfjrGgJmm28LLnT4WJbmhaifa2f3B3oFjwtc",{"id":72,"title":73,"autor":74,"body":75,"categoria":6,"description":338,"extension":339,"faq":6,"fechaActualizacion":6,"fechaPublicacion":340,"herramientasRelacionadas":6,"meta":341,"navigation":342,"path":343,"resumen":344,"seo":345,"slug":354,"stem":355,"titulo":350,"__hash__":356},"blog\u002Fes\u002Fblog\u002Fque-es-un-jwt-token.md","Que Es Un Jwt Token","Equipo Herramientastic",{"type":76,"value":77,"toc":325},"minimark",[78,91,96,109,113,116,126,139,144,159,200,204,231,235,242,246,249,272,283,287,297,300,304,314,321],[79,80,81,82,86,87,90],"p",{},"Si alguna vez inspeccionaste las cookies o el ",[83,84,85],"code",{},"localStorage"," de una web después de iniciar sesión, es probable que hayas visto una cadena larga de caracteres separada por puntos, algo como ",[83,88,89],{},"eyJhbGci...eyJzdWIi...SflKxwRJ",". Eso es un JWT (JSON Web Token), el mecanismo que hoy usan la mayoría de las APIs y aplicaciones web modernas para saber quién sos sin tener que preguntarle a una base de datos en cada petición.",[92,93,95],"h2",{"id":94},"qué-es-un-jwt","Qué es un JWT",[79,97,98,99,103,104,108],{},"JWT son las siglas de ",[100,101,102],"em",{},"JSON Web Token",", un estándar abierto definido en el ",[105,106,107],"strong",{},"RFC 7519"," para transmitir información de forma compacta y autocontenida entre dos partes, típicamente un cliente y un servidor. \"Autocontenida\" es la palabra clave: toda la información necesaria para identificar al usuario y validar el token viaja dentro del propio token, en formato JSON. El servidor no necesita guardar ese token en ningún sitio para poder verificarlo después, lo cual es la diferencia central frente a los sistemas de sesión tradicionales.",[92,110,112],{"id":111},"la-estructura-de-un-jwt-header-payload-y-signature","La estructura de un JWT: header, payload y signature",[79,114,115],{},"Un JWT siempre tiene la misma forma: tres bloques de texto separados por puntos.",[117,118,123],"pre",{"className":119,"code":121,"language":122},[120],"language-text","header.payload.signature\n","text",[83,124,121],{"__ignoreMap":125},"",[79,127,128,129,132,133,138],{},"Cada uno de esos tres bloques está codificado en ",[105,130,131],{},"Base64URL"," (una variante de Base64 segura para usar en URLs), no cifrado. Esto es importante y lo desarrollamos más abajo. Podés ver esta estructura con un token propio decodificándolo con el ",[134,135,137],"a",{"href":136},"\u002Fherramientas\u002Ftexto\u002Fjwt-decoder","decodificador de JWT",", que separa automáticamente los tres bloques y te muestra el header y el payload como JSON legible.",[140,141,143],"h3",{"id":142},"_1-header","1. Header",[79,145,146,147,150,151,154,155,158],{},"El header describe metadatos del propio token: normalmente el algoritmo de firma usado (por ejemplo ",[83,148,149],{},"HS256"," o ",[83,152,153],{},"RS256",") y el tipo de token (",[83,156,157],{},"JWT","). Es un objeto JSON pequeño, algo así:",[117,160,164],{"className":161,"code":162,"language":163,"meta":125,"style":125},"language-json shiki shiki-themes github-light github-dark","{ \"alg\": \"HS256\", \"typ\": \"JWT\" }\n","json",[83,165,166],{"__ignoreMap":125},[167,168,171,175,179,182,186,189,192,194,197],"span",{"class":169,"line":170},"line",1,[167,172,174],{"class":173},"sVt8B","{ ",[167,176,178],{"class":177},"sj4cs","\"alg\"",[167,180,181],{"class":173},": ",[167,183,185],{"class":184},"sZZnC","\"HS256\"",[167,187,188],{"class":173},", ",[167,190,191],{"class":177},"\"typ\"",[167,193,181],{"class":173},[167,195,196],{"class":184},"\"JWT\"",[167,198,199],{"class":173}," }\n",[140,201,203],{"id":202},"_2-payload","2. Payload",[79,205,206,207,210,211,214,215,218,219,222,223,188,225,188,228,230],{},"El payload contiene los ",[105,208,209],{},"claims",": la información real que el token transporta, como el identificador del usuario (",[83,212,213],{},"sub","), la fecha de expiración (",[83,216,217],{},"exp","), quién emitió el token (",[83,220,221],{},"iss",") o cualquier dato personalizado que la aplicación necesite (roles, permisos, etc.). Hay claims \"registrados\" por el estándar (como ",[83,224,217],{},[83,226,227],{},"iat",[83,229,213],{},") y claims propios que cada aplicación puede agregar libremente.",[140,232,234],{"id":233},"_3-signature","3. Signature",[79,236,237,238,241],{},"La signature es el resultado de aplicar el algoritmo indicado en el header sobre el header y el payload combinados, usando un secreto (en algoritmos simétricos como HS256) o una clave privada (en algoritmos asimétricos como RS256). Su función no es ocultar información, sino garantizar ",[105,239,240],{},"integridad",": si alguien modifica un solo carácter del header o del payload después de emitido el token, la firma deja de coincidir y el servidor lo rechaza al verificarlo.",[92,243,245],{"id":244},"cómo-funciona-la-autenticación-con-tokens","Cómo funciona la autenticación con tokens",[79,247,248],{},"El flujo típico es así:",[250,251,252,256,259,269],"ol",{},[253,254,255],"li",{},"El usuario inicia sesión con su usuario y contraseña.",[253,257,258],{},"El servidor valida las credenciales y, si son correctas, genera un JWT firmado con la identidad del usuario y lo devuelve al cliente.",[253,260,261,262,264,265,268],{},"El cliente guarda ese token (en memoria, ",[83,263,85],{}," o una cookie) y lo envía en cada petición posterior, normalmente en la cabecera ",[83,266,267],{},"Authorization: Bearer \u003Ctoken>",".",[253,270,271],{},"El servidor, al recibir cada petición, verifica la firma del token con su secreto o clave pública. Si la firma es válida y el token no expiró, confía en los datos del payload sin necesidad de consultar una base de datos de sesiones.",[79,273,274,275,278,279,282],{},"Esa es la diferencia de fondo frente a la autenticación por sesiones tradicionales: una sesión clásica obliga al servidor a guardar un identificador de sesión en memoria o en una base de datos y consultarlo en cada petición (autenticación ",[100,276,277],{},"stateful","); un JWT es ",[100,280,281],{},"stateless"," porque toda la verificación depende únicamente de la firma criptográfica, no de una consulta externa. Eso facilita escalar horizontalmente (cualquier servidor con el secreto puede verificar el token, no hace falta compartir un almacén de sesiones), aunque también trae una contrapartida: revocar un JWT antes de su expiración natural no es tan directo como borrar una fila de una tabla de sesiones.",[92,284,286],{"id":285},"un-jwt-no-es-lo-mismo-que-un-dato-cifrado","Un JWT no es lo mismo que un dato cifrado",[79,288,289,290,293,294,296],{},"Este es el malentendido más común y también el más importante de aclarar: ",[105,291,292],{},"el header y el payload de un JWT no están cifrados, están codificados en Base64URL",". Codificar no es lo mismo que cifrar: cualquiera que tenga el token puede decodificar el header y el payload y leer su contenido en texto plano, sin necesitar ninguna clave. Podés comprobarlo pegando cualquier JWT en el ",[134,295,137],{"href":136},": vas a ver el JSON completo sin necesitar el secret usado para firmarlo.",[79,298,299],{},"Lo único que la firma protege es que el contenido no haya sido alterado, no que sea secreto. Por eso una buena práctica de seguridad es no incluir en el payload información sensible (contraseñas, datos personales críticos, secretos de negocio): cualquiera que intercepte el token puede leerla. Si necesitás confidencialidad además de integridad, el estándar contempla una variante llamada JWE (JSON Web Encryption), que sí cifra el contenido, pero es mucho menos común que el JWS estándar (el JWT \"normal\" firmado que describimos arriba).",[92,301,303],{"id":302},"cómo-depurar-un-jwt-sin-exponer-tokens-sensibles","Cómo depurar un JWT sin exponer tokens sensibles",[79,305,306,307,310,311,313],{},"Cuando algo falla en un flujo de autenticación —un token que no se acepta, un claim que no llega como se esperaba—, la forma más rápida de diagnosticarlo es decodificar el token y mirar su contenido directamente. Para eso conviene usar una herramienta que procese el token ",[105,308,309],{},"completamente en tu navegador",", sin enviarlo a ningún servidor externo, algo especialmente relevante si el token que estás depurando es de un entorno de producción real. El ",[134,312,137],{"href":136}," de Herramientastic hace exactamente eso: decodifica el header y el payload en tu propio navegador, sin transmitir el token a ningún servidor, y sin validar ni necesitar el secret de firma (porque no lo verifica, solo lo muestra de forma legible).",[79,315,316,317,320],{},"Podés explorar el resto de utilidades para desarrolladores en la ",[134,318,319],{"href":64},"categoría de texto"," de Herramientastic.\n",[322,323,324],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":125,"searchDepth":326,"depth":326,"links":327},2,[328,329,335,336,337],{"id":94,"depth":326,"text":95},{"id":111,"depth":326,"text":112,"children":330},[331,333,334],{"id":142,"depth":332,"text":143},3,{"id":202,"depth":332,"text":203},{"id":233,"depth":332,"text":234},{"id":244,"depth":326,"text":245},{"id":285,"depth":326,"text":286},{"id":302,"depth":326,"text":303},"Si alguna vez inspeccionaste las cookies o el localStorage de una web después de iniciar sesión, es probable que hayas visto una cadena larga de caracteres separada por puntos, algo como eyJhbGci...eyJzdWIi...SflKxwRJ. Eso es un JWT (JSON Web Token), el mecanismo que hoy usan la mayoría de las APIs y aplicaciones web modernas para saber quién sos sin tener que preguntarle a una base de datos en cada petición.","md","2026-07-19",{},true,"\u002Fes\u002Fblog\u002Fque-es-un-jwt-token","Header, payload y signature explicados en simple. Cómo funciona un JSON Web Token, por qué no es lo mismo que un dato cifrado, y cómo inspeccionar uno propio de forma segura.",{"title":346,"description":347,"canonical":348,"og":349},"Qué es un JWT y cómo funciona la autenticación con tokens | Blog","Qué es un JSON Web Token (JWT), cómo se estructura en header, payload y signature, y cómo funciona la autenticación basada en tokens.","\u002Fblog\u002Fque-es-un-jwt-token",{"title":350,"description":351,"image":352,"type":353},"Qué es un JWT y cómo funciona la autenticación con tokens","Header, payload y signature de un JWT explicados en simple, con ejemplo de cómo funciona la autenticación basada en tokens.","\u002Fog\u002Fblog\u002Fque-es-un-jwt-token.png","article","que-es-un-jwt-token","es\u002Fblog\u002Fque-es-un-jwt-token","9ojCZ80jFuupEYrwPWmfEMaFs-9YT1lBAHvkrwIFpj4"]