¿Qué es JWT (JSON Web Tokens)?

| Última modificación: 24 de abril de 2025 | Tiempo de Lectura: 7 minutos

¿Sabes qué es JWT o JSON Web Tokens y para qué funciona? Si aún no lo sabes, pero te gustaría conocerlo, te recomendamos seguir leyendo este artículo. A continuación, exploraremos el concepto principal, la estructura del Web Token, las aplicaciones y como funciona jwt . Así pues, en este post te presentamos todos los conceptos que rodean la pregunta de qué es JWT.

¿Qué es JWT (JSON Web Tokens)?

JWT es un objeto de JSON (notación de objeto de JavaScript), una herramienta de estándar abierto cuyo objetivo es establecer una transmisión de información entre dos o más campos. A partir de estos, se puede propagar información de forma segura y efectiva, que, además, es verificada, pues se firma de forma virtual. Este conjunto de información toma la referencia de web token, bajo el estándar abierto de JSON.

jwt,JSON Web Tokens

¿Cómo funciona?

El jsonwebtocken puede funcionar desde cualquier espacio, ya que su tamaño no es muy extenso. Puede establecerse en sitios como URL, parámetros de respuesta POST o dentro de un header HTTP.

A diferencia de otros elementos representados como token de la informática, JWT Tokens están conformados por claims (demandas), con las que se realiza la transmisión de información de uno a otro lado. Estos datos pueden ser relevantes a la forma de acceso, al tiempo válido, a los permisos y a cualquier otro concepto que se relacione con información de dos espacios de la web.

Estructura

JSON Web Token es una cadena compuesta por tres partes separadas por un punto (.) y se serializa usando la base número 64. Las tres partes que componen este token son: headerpaylod y signature. Según los expertos, puede verse sintácticamente de la siguiente manera:

xxxxx.yyyyy.zzzzz.

A continuación, te contaremos a qué refiere cada componente.

Header

En primer lugar, el header es el primer componente del token y consiste de dos partes: el tipo de token que, en este caso, es JWT, y el algoritmo que se está utilizando, que puede ser RSA o SHA256.

// header.payload.signature
{
«alg»: «HS256»,
«typ»: «JWT»
}

Payload

En el payload se encuentran los claims (demandas) de token. Estas son sobre una entidad (user, objeto) y otro tipo de información que lo acompaña. Los tipos de demandas son: registrado, privado y público. Los registrados son claims que no son obligatorios, pero que sí son recomendados, algunos de ellos son iss (issuer), sub (subject) o exp (expiration time), entre otros.

Los privados, por otro lado, se crean para compartir información entre los dos objetos o sitios.

{ «sub»: «5832874973»,
«name»: «Keepcoding» }

Signature

jwt.sign

En el componente de signaturedeberás firmar el header codificado, el payload token codificado, el secret y el algoritmo que se ha establecido en el header. Esto se realiza para verificar que no existe ningún cambio en las respuestas o contenido de los componentes.

Según la página del JWT, un ejemplo podría ser:

HMACSHA256(
base64UrlEncode(header) + «.» +
base64UrlEncode(payload), secret)

Ventajas de la estructura

Algunas ventajas que salen gracias a su estructura es que el JSON Web Token tiene un tamaño compacto, por lo que puede establecerse en cualquier elemento, como los que mencionamos anteriormente. Por otro lado, es self-contained, por lo que tiene toda la información necesaria para compartir información, así como para autenticar y autorizar.

Por último, una de las ventajas más importantes de los jws es que son multiparadigma, es decir, trabajan en varias plataformas, tales como .NET, Python, Node.js, Java, PHP, Ruby y JavaScript.

Aplicaciones de JWT

Para entender qué es jwt (json web token), es imprescindible hablar de sus casos de uso más recurrentes, que son:

  • Para el intercambio de información entre dos sitios. Como se firma digitalmente, puede utilizarse en una key pair segura en el campo privado y público. La información, después, puede ser verificada por la public-key al final.
  • Por último, gracias a que el JWT posee información encontrada en el payload, puede utilizarse para autenticar el user de la sesión.

¿Cómo usar el JWT?

Un código JWT nos permite identificar al usuario cuando ha iniciado sesión. En este sentido, será útil para permitir muchas de las acciones que solo un usuario validado podrá ejecutar. Por ejemplo, en todas las redes sociales necesitas haber iniciado sesión para crear un post. Entonces, un JWT es el que se encarga de saber si lo has hecho o no.

Otro caso en el que podremos usar el JWT es cuando queramos validar la identidad del usuario para permitir una acción sobre su contenido (solo el usuario que ha creado un post podrá eliminarlo o editarlo). Para reconocer al usuario y activar o no los botones de borrado y edición, deberemos conocer sus credenciales y, por ende, su JWT.

Ahora, para usar el JWT necesitamos tener este código a la mano. En los testeos de un proyecto, que se pueden hacer con Postman, normalmente nos vale con copiar el token y pegarlo en la sección headers. Sin embargo, en proyectos más grandes queremos una acción automática que perdure en el tiempo. Para ello, deberemos usar alguno de los medios que tenemos disponibles para la persistencia de datos en el navegador (localstorage, session storage, etc.).

¿Por qué debemos guardar este dato fuera de nuestro código? Pues porque los datos almacenados en simples variables de nuestro código se liberan de la memoria cuando se cumple la función dentro de la que están. Es decir, las variables declaradas en el ámbito de la función desaparecen una vez esta se ejecute. Por ello, y porque es un dato necesitado por muchas de las pantallas de la aplicación, deberemos guardarlo dentro de un espacio diferente.

A la hora de usar el JWT, es muy común guardar este código en el localstorage del navegador, pues este nos permite tener el dato disponible más allá de la sesión de búsqueda. De este modo, podemos guardar las credenciales de un usuario más allá de su sesión, lo que le permite acceder automáticamente a su cuenta cada vez que entre a nuestra aplicación.

Ten en cuenta que un dato guardado en localstorage se quedará ahí hasta que decidamos borrarlo (una acción común con botones de log out). Para conocer más sobre este proceso, te invitamos a leer nuestro post sobre guardar JWT en localstorage.

¿Por qué usar JWT?

1. La seguridad de la clave secreta

Uno de los principales beneficios de por qué usar JWT es que la firma que protege la integridad de los datos se basa en una clave secreta. Esta clave es conocida solo por el servidor que emite los tokens y, por lo tanto, garantiza que los datos no se han modificado por ninguna otra parte. La seguridad de esta clave secreta es crucial, ya que si alguien más la obtiene, podría falsificar tokens y acceder a información privada. Por lo tanto, mantener esta clave segura es fundamental para asegurar la validez de los JWT.

2. Autenticación y autorización eficiente

En el desarrollo de aplicaciones web, la autenticación y la autorización son dos aspectos cruciales para garantizar la seguridad de los usuarios y los datos. JWT ofrece una forma eficiente de manejar estos procesos, ya que una vez que el cliente ha iniciado sesión y ha recibido el token, este puede utilizarse en cada solicitud subsiguiente para demostrar su autenticidad. Esto elimina la necesidad de almacenar sesiones en el servidor, lo que deriva en un enfoque más escalable y ligero para la autenticación. Esta es otra de las buenas razones de por qué usar JWT.

3. La magia de la clave privada y pública

El uso de clave privada y clave pública es otra característica valiosa de por qué usar JWT. Al emplear criptografía de clave asimétrica, el servidor puede firmar el JWT con su clave privada, mientras que los clientes pueden verificar la firma utilizando la clave pública del servidor. Esto proporciona una capa adicional de seguridad y asegura que solo el servidor pueda generar tokens válidos. Asimismo, al compartir la clave pública con otros servicios o microservicios, se puede garantizar que todos ellos confíen en los tokens emitidos por el servidor.

4. Intercambio de información en API REST

En el mundo de las API REST, donde la interoperabilidad y la seguridad son fundamentales, el uso de JWT ha ganado gran popularidad; por eso es importante saber por qué usar JWT es la mejor opción. Los tokens JWT son perfectos para el intercambio seguro de información entre diferentes partes de una aplicación o incluso entre diferentes aplicaciones. Esto permite una comunicación segura y confiable en un entorno distribuido, donde diferentes servicios deben interactuar sin poner en riesgo la seguridad de los datos.

5. Token JWT y la protección de los inicios de sesión

El inicio de sesión seguro es un aspecto esencial para cualquier aplicación web. Dentro de las razones de por qué usar JWT se encuentra que este proporciona una forma eficiente y segura de proteger los inicios de sesión de los usuarios. Una vez que un usuario ha sido autenticado, se genera un token JWT que contiene información sobre el usuario y sus permisos. Este token se envía en cada solicitud subsiguiente, lo que le permite al servidor verificar la identidad del usuario sin tener que consultar una base de datos en cada petición.

6. Adaptabilidad a grandes volúmenes de datos

En el mundo actual, donde la inteligencia artificial y el Big Data son conceptos clave, el manejo eficiente de grandes volúmenes de datos es una prioridad. JWT es especialmente útil en este contexto, ya que su formato compacto lo hace ideal para transmitir información en aplicaciones que manejan grandes flujos de datos. Además, al no depender de una base de datos para almacenar sesiones, los servidores pueden escalar fácilmente para manejar un alto número de solicitudes concurrentes. Esta es otra de las razones por qué usar JWT.

Más allá de los JWT (Jason Web Tokens)

Ahora que sabes qué es JWT o JSON Web Tokens, su estructura y cómo funciona, debes saber que seguramente harás uso de esta herramienta en los procesos que empieces a emprender en desarrollo web. No obstante, esta es solo una de las muchas herramientas que podrías aprender en una formación intensiva como la del Curso de Programación desde Cero de Keepcoding. ¿Quieres darle un giro a tu vida y convertirte en programador en menos de un año? ¡Solicita más información y da el paso que impulsará tu carrera!

Full Stack Developer

¡PONTE A PRUEBA!

¿Te gusta EL DESARROLLO WEB FULL STACK?

¿CREES QUE PUEDES DEDICARTE A ELLO?

Sueldos de hasta 80K | Más de 40.000 vacantes | Empleabilidad del 100%

KeepCoding Bootcamps
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.