Skip to content

Commit 3ceae44

Browse files
Merge pull request #54 from brettchaldecott/fix/token_decode_issue
Fix/token decode issue
2 parents 143ebcb + 77b4589 commit 3ceae44

File tree

1 file changed

+19
-24
lines changed

1 file changed

+19
-24
lines changed

kinde_sdk/kinde_api_client.py

Lines changed: 19 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ def is_authenticated(self) -> bool:
137137
def is_authenticated_token(self, token_value: dict) -> dict:
138138
if token_value:
139139
if token_value.is_expired():
140-
return self._refresh_token_value(token_value)
140+
self._refresh_token_value(token_value)
141+
return True
141142
return None
142143

143144
def create_org(self) -> str:
@@ -335,32 +336,26 @@ def _decode_token_if_needed(self, token_name: str) -> None:
335336
raise KindeTokenException(f"Token {token_name} doesn't exist.")
336337

337338
def _decode_token_if_needed_value(self, token_name: str, token_value: dict) -> dict:
338-
if token_name not in token_value:
339-
if not token_value:
340-
raise KindeTokenException(
341-
"Access token doesn't exist.\n"
342-
"When grant_type is CLIENT_CREDENTIALS use fetch_token().\n"
343-
'For other grant_type use "get_login_url()" or "get_register_url()".'
344-
)
345-
token = token_value.get(token_name)
339+
token = token_value.get(token_name)
346340

347-
signing_key = self.jwks_client.get_signing_key_from_jwt(token)
341+
if not isinstance(token, str):
342+
return token_value
348343

349-
if token:
350-
decode_token_params = {
351-
"jwt":token,
352-
"key": signing_key.key,
353-
"algorithms":["RS256"],
354-
"options":{
355-
"verify_signature": True,
356-
"verify_exp": True,
357-
"verify_aud": False
358-
}
344+
signing_key = self.jwks_client.get_signing_key_from_jwt(token)
345+
if signing_key:
346+
decode_token_params = {
347+
"jwt":token,
348+
"key": signing_key.key,
349+
"algorithms":["RS256"],
350+
"options":{
351+
"verify_signature": True,
352+
"verify_exp": True,
353+
"verify_aud": False
359354
}
360-
return jwt.decode(**decode_token_params)
361-
else:
362-
raise KindeTokenException(f"Token {token_name} doesn't exist.")
363-
return token_value
355+
}
356+
return {token_name: jwt.decode(**decode_token_params)}
357+
else:
358+
raise KindeTokenException(f"Token {token_name} doesn't exist.")
364359

365360
def fetch_token(self, authorization_response: Optional[str] = None) -> None:
366361
if self.grant_type == GrantType.CLIENT_CREDENTIALS:

0 commit comments

Comments
 (0)