From 4ae0a2114e202f525ad9d992cd65c5297b7a934d Mon Sep 17 00:00:00 2001 From: Joel Lee Date: Thu, 23 Mar 2023 11:23:30 +0800 Subject: [PATCH 1/3] fix: patch padding for base64 --- gotrue/helpers.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gotrue/helpers.py b/gotrue/helpers.py index 6aa73025..bec04eba 100644 --- a/gotrue/helpers.py +++ b/gotrue/helpers.py @@ -82,5 +82,7 @@ def decode_jwt_payload(token: str) -> Any: parts = token.split(".") if len(parts) != 3: raise ValueError("JWT is not valid: not a JWT structure") - base64Url = parts[1] - return loads(b64decode(base64Url).decode("utf-8")) + # Addding padding otherwise the following error happens: + # binascii.Error: Incorrect padding + base64UrlWithPadding = base64Url + '=' * (-len(base64Url) % 4) + return loads(b64decode(base64UrlWithPadding).decode("utf-8")) From e1ba5e2ab79484beda860c27961336771f73b15b Mon Sep 17 00:00:00 2001 From: Joel Lee Date: Thu, 23 Mar 2023 11:25:12 +0800 Subject: [PATCH 2/3] Update helpers.py --- gotrue/helpers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gotrue/helpers.py b/gotrue/helpers.py index bec04eba..8f390e5b 100644 --- a/gotrue/helpers.py +++ b/gotrue/helpers.py @@ -82,6 +82,7 @@ def decode_jwt_payload(token: str) -> Any: parts = token.split(".") if len(parts) != 3: raise ValueError("JWT is not valid: not a JWT structure") + base64Url = parts[1] # Addding padding otherwise the following error happens: # binascii.Error: Incorrect padding base64UrlWithPadding = base64Url + '=' * (-len(base64Url) % 4) From a37afe39c3930c022010d018647d325d8d583d33 Mon Sep 17 00:00:00 2001 From: "joel@joellee.org" Date: Thu, 23 Mar 2023 12:19:16 +0800 Subject: [PATCH 3/3] fix: run black --- gotrue/helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gotrue/helpers.py b/gotrue/helpers.py index 8f390e5b..930abd39 100644 --- a/gotrue/helpers.py +++ b/gotrue/helpers.py @@ -85,5 +85,5 @@ def decode_jwt_payload(token: str) -> Any: base64Url = parts[1] # Addding padding otherwise the following error happens: # binascii.Error: Incorrect padding - base64UrlWithPadding = base64Url + '=' * (-len(base64Url) % 4) + base64UrlWithPadding = base64Url + "=" * (-len(base64Url) % 4) return loads(b64decode(base64UrlWithPadding).decode("utf-8"))