Skip to content

Commit b67444f

Browse files
Natimpfouque
authored andcommitted
Use jwt.decode public API
1 parent 96e4f37 commit b67444f

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

intuitlib/utils.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@
1616
"""
1717

1818
import json
19-
from base64 import b64encode, b64decode, urlsafe_b64decode
20-
from datetime import datetime
2119
import random
22-
import string
2320
import requests
24-
from requests.sessions import Session
2521
import six
26-
from jwt import PyJWKSet
27-
22+
import string
23+
from base64 import b64encode, b64decode, urlsafe_b64decode
24+
from datetime import datetime
25+
from jwt import PyJWKSet, PyJWTError
26+
from requests.sessions import Session
2827

28+
from intuitlib.config import DISCOVERY_URL, ACCEPT_HEADER
2929
from intuitlib.enums import Scopes
3030
from intuitlib.exceptions import AuthClientError
31-
from intuitlib.config import DISCOVERY_URL, ACCEPT_HEADER
31+
3232

3333
def get_discovery_doc(environment, session=None):
3434
"""Gets discovery doc based on environment specified.
@@ -165,9 +165,11 @@ def validate_id_token(id_token, client_id, intuit_issuer, jwk_uri):
165165

166166
message = id_token_parts[0] + '.' + id_token_parts[1]
167167
public_key = get_jwk(id_token_header['kid'], jwk_uri).key
168-
169-
is_signature_valid = public_key.verify(message.encode('utf-8'), id_token_signature)
170-
return is_signature_valid
168+
try:
169+
jwt.decode(id_token, public_key, audience=client_id, algorithms=['RS256'])
170+
return True
171+
except PyJWTError:
172+
return False
171173

172174
def get_jwk(kid, jwk_uri):
173175
"""Get JWK for public key information

0 commit comments

Comments
 (0)