jwt

JSON Web Token es una cadena codificada con formato JSON.

JWT se usa para transmitir información entre cliente y servidor, sobre todo para autenticación y autorización. El servidor emite un token al cliente, y luego el cliente lo usa para acceder a los recursos del servidor.

Formato de JSON Web Token

  • Encabezado contiene el nombre del algoritmo usado para firmar el token y el tipo de token

    {
      "alg": "",
      "typ": "JWT"
    }
  • Carga útil puede almacenar cualquier dato bajo cualquier clave e información de servicio sobre el token en campos especiales

    • issemisor del token
    • subsujeto para el que se emitió el token
    • auddestinatarios a los que está dirigido el token
    • expmomento después del cual el token expirará
    • nbfmomento antes del cual el token no debe aceptarse
    • iatmomento en que se emitió el token
    • jtiidentificador único del token

    Todos los campos especiales anteriores son opcionales, es decir, no son obligatorios.

    {
      "sub": "user123",
      "name": "vasyapupkin",
      "exp": 1916239022
    }
  • Signature se usa para verificar la integridad del token y garantizar la autenticidad de los datos. La firma se genera a partir del encabezado, la carga útil y una clave secreta que solo conoce el servidor emisor.

    Algoritmos usados para crear la firma:

    • HMAC usa una función hash y una clave secreta para generar la firma.
    • RSA usa un par de claves (pública y privada) para firmar y verificar.
    • ECDSA algoritmo de firma digital basado en curvas elípticas.

Ejemplo de JSON Web Token

El token JWT resultante consta de tres partes separadas por puntos. El encabezado y la carga útil (datos) están codificados en Base64, que, como veremos en la tarea, se puede decodificar fácilmente.

encabezado                                carga útil                                 firma
eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyMTIzIiwiZXhwIjoxOTE2MjM5MDIyfQ.5bK9CxN8h9430ugDlLR_35r8jjkQEfywv
{
    "alg": "HS256",
    "typ": "JWT"
}
{
    "sub": "user123",
    "exp": 1916239022
}

No decodificado

Es importante entender que un token JWT no está pensado para transmitir información sensible o confidencial, ya que su contenido no está cifrado de forma predeterminada. La firma protege el token contra modificaciones, pero no oculta los datos.

Tarea

Decodifica el token JWT generado por el servidor y comprueba que cumple los requisitos.

Usa el sitio oficial jwt.io, pega el token en el campo Encoded. El resultado aparecerá en el campo Decoded.

¡Tarea disponible para usuarios premium!

Desbloquea el acceso para aprender sin límites.

Acceso completo a todas las tareas prácticas
Verificación de respuestas
Intentos ilimitados
Sidebar arrow

INTRODUCCIÓN

CONCEPTOS BÁSICOS

NIVELES DE PRUEBAS

PRUEBAS DE UI

DISEÑO DE PRUEBAS

DOCUMENTACIÓN DE PRUEBAS

AUTENTICACIÓN Y AUTORIZACIÓN

POSTMAN

BASES DE DATOS

PRUEBAS DE RELEASE

ANÁLISIS DE LA APLICACIÓN

PREPARACIÓN PARA ENTREVISTAS

Cómo escribir un CV Preguntas frecuentes de entrevista Test Entrevista simulada