0% acharam este documento útil (0 voto)
18 visualizações1 página

Code2pdf 6706ed56f303e

Enviado por

blackhakai45
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações1 página

Code2pdf 6706ed56f303e

Enviado por

blackhakai45
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 1

import jwt

import datetime

# Definindo a chave secreta e a validade padrão


SECRET_KEY = 'sua_chave_secreta'
EXPIRATION_MINUTES = 30

def generate_token(user_id, secret_key=SECRET_KEY, expiration_minutes=EXPIRATION_MINUTES):


# Criação do payload
exp = datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(minutes=expiration_minutes)
payload = {
'user_id': user_id,
'exp': exp
}

# Geração do token
token = jwt.encode(payload, secret_key, algorithm='HS256')
return token

def validate_token(received_token, secret_key=SECRET_KEY):


try:
# Decodificando o token
payload = jwt.decode(received_token, secret_key, algorithms=['HS256'])

# Extraindo user_id
user_id = payload['user_id']

# Retorno se o token for válido


return True, user_id
except jwt.ExpiredSignatureError:
return False, "Token expirado"
except jwt.InvalidTokenError:
return False, "Token inválido"

def run_tests():
# Geração de um token válido
user_id = 'Malandros'
token = generate_token(user_id)

# Teste com token válido


is_valid, result = validate_token(token)
assert is_valid and result == user_id, "Teste de token válido falhou."

# Teste com token expirado


expired_token = generate_token(user_id, expiration_minutes=-1)
is_valid, result = validate_token(expired_token)
assert not is_valid and result == "Token expirado", "Teste de token expirado falhou."

# Teste com token inválido


invalid_token = "token_invalido"
is_valid, result = validate_token(invalid_token)
assert not is_valid and result == "Token inválido", "Teste de token inválido falhou."

print("Todos os testes passaram!")

def handle_request(token):
is_valid, user_id = validate_token(token)
if is_valid:
# Processar a requisição para o usuário autenticado
print(f"Acesso autorizado para o usuário: {user_id}")
else:
print(f"Acesso negado: {user_id}")

# Simulação de requisição
token = generate_token('Malandros')
handle_request(token) # Acesso autorizado

Você também pode gostar