Sobes.tech
Junior — Middle

¿Cómo se puede verificar si un token JWT es válido y está activo?

sobes.tech AI

Respuesta de la IA

Para verificar la validez y actividad de un token JWT, es necesario realizar varios pasos:

  1. Verificación de firma: Usando la clave secreta (para HMAC) o la clave pública (para RSA/ECDSA), verificar que la firma del token sea correcta y no haya sido modificada.

  2. Verificación de la fecha de expiración: Revisar los campos exp (tiempo de expiración) y nbf (no antes de), para asegurarse de que el token no haya expirado y ya esté activo.

  3. Verificación de otras afirmaciones (claims): Por ejemplo, iss (emisor), aud (audiencia), para asegurarse de que el token esté destinado a su aplicación.

Ejemplo en Python usando la biblioteca PyJWT:

import jwt
from jwt import ExpiredSignatureError, InvalidTokenError

secreto = 'tu-clave-secreta'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'

try:
    payload = jwt.decode(token, secreto, algorithms=['HS256'], audience='tu-audiencia')
    # El token es válido y está activo
    print('Carga útil:', payload)
except ExpiredSignatureError:
    print('El token ha expirado')
except InvalidTokenError:
    print('Token inválido')

De esta manera, la validez del JWT se determina verificando la firma y los tiempos de validez, y la actividad, por la conformidad con los límites de tiempo actuales del token.