import hashlib import hmac import time class AuthManager: """ Token-based authentication and role-based authorization. """ def __init__(self, secret_key="blux_secret"): self.secret_key = secret_key.encode() self.tokens = {} # user_id: token info def generate_token(self, user_id, expiry_seconds=3600): timestamp = str(int(time.time()) + expiry_seconds) msg = f"{user_id}:{timestamp}".encode() token = hmac.new(self.secret_key, msg, hashlib.sha256).hexdigest() self.tokens[user_id] = {"token": token, "expires": int(time.time()) + expiry_seconds} return token def validate_token(self, user_id, token): info = self.tokens.get(user_id) if not info: return False if int(time.time()) > info["expires"]: return False return hmac.compare_digest(info["token"], token)