aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/hatchet_sdk/token.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/hatchet_sdk/token.py')
-rw-r--r--.venv/lib/python3.12/site-packages/hatchet_sdk/token.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/hatchet_sdk/token.py b/.venv/lib/python3.12/site-packages/hatchet_sdk/token.py
new file mode 100644
index 00000000..313a6671
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/hatchet_sdk/token.py
@@ -0,0 +1,27 @@
+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