From cd548ad02cdc279c596f99d7ef1a2726f3f8b945 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Thu, 29 Jan 2026 11:11:39 +0000 Subject: [PATCH] Add devterm tools and TUI menu --- devterm/tools/jwt_tool.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 devterm/tools/jwt_tool.py diff --git a/devterm/tools/jwt_tool.py b/devterm/tools/jwt_tool.py new file mode 100644 index 0000000..50df592 --- /dev/null +++ b/devterm/tools/jwt_tool.py @@ -0,0 +1,25 @@ +import jwt +import json + + +def decode_jwt(token: str, verify: bool = False) -> dict: + try: + parts = token.split(".") + if len(parts) != 3: + raise ValueError("Invalid JWT format") + + header = json.loads(jwt.utils.base64url_decode(parts[0]).decode("utf-8")) + payload = json.loads(jwt.utils.base64url_decode(parts[1]).decode("utf-8")) + + result = { + "header": header, + "payload": payload, + "signature": parts[2][:20] + "..." if len(parts[2]) > 20 else parts[2] + } + + if verify: + jwt.decode(token, options={"verify_signature": False}) + + return result + except Exception as e: + raise ValueError(f"Failed to decode JWT: {str(e)}")