Sobes.tech
Junior — Middle

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:

  1. 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.

  2. Verificação do prazo de validade: Verificar os campos exp (tempo de expiração) e nbf (não antes de), para garantir que o token não expirou e já está ativo.

  3. 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.