From 4958c80c7b76f18d81cd4df2e7ddd1f728b71bf1 Mon Sep 17 00:00:00 2001
From: Klaas <kliffen@astron.nl>
Date: Fri, 19 Nov 2021 11:21:27 +0100
Subject: [PATCH] Add padding to fix base64 decode

---
 shopping_client/shopping_client.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/shopping_client/shopping_client.py b/shopping_client/shopping_client.py
index 1462e89..e0ccab5 100644
--- a/shopping_client/shopping_client.py
+++ b/shopping_client/shopping_client.py
@@ -104,7 +104,9 @@ class shopping_client:
             return False
 
         try:
-            payload = json.loads(base64.urlsafe_b64decode(token.split(".")[1]))
+            data = token.split(".")[1]
+            padded = data + "=" * divmod(len(token), 4)[1]
+            payload = json.loads(base64.urlsafe_b64decode(padded))
             return payload["exp"] > int(time.time()) + 10
         except KeyError:
             raise RuntimeError("Invalid JWT format")
@@ -168,7 +170,7 @@ class shopping_client:
                     f"{jh_api_uri}/user",
                     headers={"Authorization": f"token {jh_api_token}"},
                 )
-                
+
                 self.token = res.json()["auth_state"]["exchanged_tokens"][self.audience]
 
         except KeyError:
-- 
GitLab