¿Qué es un JWT?
Un JWT (JSON Web Token) es un formato habitual para los tokens de inicio de sesión. Tiene tres partes en Base64URL separadas por puntos: header.payload.signature. El header indica el algoritmo de firma, el payload contiene «claims» como el usuario y la fecha de caducidad, y la firma demuestra que el contenido no se ha modificado.
Cómo se usa
- Pega un JWT a la izquierda (puede empezar por
Bearer). El header, el payload y el estado de caducidad aparecen a la derecha. iat(emitido),nbf(válido desde) yexp(caduca) se muestran como fechas en tu zona horaria.- Para HS256, HS384 y HS512, introduce la clave secreta para verificar la firma.
Ejemplo
El token que carga «Cargar ejemplo» tiene este payload:
{
"sub": "1234567890",
"name": "Mike",
"role": "admin",
"iat": 1700000000,
"exp": 4102444800
}
Es un token HS256 firmado con la clave secreta toolpivo-secret.
Preguntas frecuentes
¿El contenido de un JWT está cifrado?
No. El header y el payload solo están codificados en Base64URL, así que cualquiera que tenga el token puede leerlos. Nunca pongas contraseñas ni otros secretos en el payload. La firma demuestra que el contenido no se cambió; no lo oculta.
¿Es seguro pegar un token aquí?
La decodificación y la verificación se hacen en tu navegador. El token y la clave secreta nunca se envían a un servidor ni se guardan en el navegador. Aun así, deja que los tokens de producción caduquen después de usarlos.
¿Por qué no se puede verificar RS256?
RS256, ES256 y algoritmos similares firman con una clave privada y se verifican con la clave pública del emisor. Por ahora esta herramienta admite HS256, HS384 y HS512, que usan la misma clave secreta para firmar y verificar.
¿En qué unidad está exp?
Según el estándar JWT (RFC 7519), exp, iat y nbf son timestamps Unix en segundos, no en milisegundos.