¿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:
-
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.
-
Verificación de la fecha de expiración: Revisar los campos
exp(tiempo de expiración) ynbf(no antes de), para asegurarse de que el token no haya expirado y ya esté activo. -
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.