Como é que se pode verificar se um token JWT é realmente válido e ativo?
sobes.tech IA
Resposta da IA
Para verificar a validade e atividade de um token JWT, é necessário realizar vários passos:
-
Verificação da assinatura: Usando a chave secreta (para HMAC) ou a chave pública (para RSA/ECDSA), verificar se a assinatura do token está correta e não foi alterada.
-
Verificação do prazo de validade: Verificar os campos
exp(tempo de expiração) enbf(não antes de), para garantir que o token não expirou e já está ativo. -
Verificação de outras afirmações (claims): Por exemplo,
iss(emissor),aud(destinatário) — para garantir que o token seja destinado à sua aplicação.
Exemplo em Python usando a biblioteca PyJWT:
import jwt
from jwt import ExpiredSignatureError, InvalidTokenError
segredo = 'sua-chave-secreta'
token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...'
try:
payload = jwt.decode(token, segredo, algorithms=['HS256'], audience='sua-audiencia')
# O token é válido e está ativo
print('Carga útil:', payload)
except ExpiredSignatureError:
print('O token expirou')
except InvalidTokenError:
print('Token inválido')
Dessa forma, a validade do JWT é determinada pela verificação da assinatura e dos prazos de validade, e a atividade, pela conformidade com os limites de tempo atuais do token.