import base64 import json def get_tenant_id_from_jwt(token: str) -> str: claims = extract_claims_from_jwt(token) return claims.get('sub') def get_addresses_from_jwt(token: str) -> (str, str): claims = extract_claims_from_jwt(token) return claims.get('server_url'), claims.get('grpc_broadcast_address') def extract_claims_from_jwt(token: str): parts = token.split('.') if len(parts) != 3: raise ValueError('Invalid token format') claims_part = parts[1] claims_part += '=' * ((4 - len(claims_part) % 4) % 4) # Padding for base64 decoding claims_data = base64.urlsafe_b64decode(claims_part) claims = json.loads(claims_data) return claims