Skip to content

Commit 163430c

Browse files
committed
Use PyJWT instead of python-jose
1 parent 8cefee7 commit 163430c

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

intuitlib/utils.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@
2020
from datetime import datetime
2121
import random
2222
import string
23-
from jose import jwk
2423
import requests
2524
from requests.sessions import Session
2625
import six
27-
from requests_oauthlib import OAuth1
26+
from jwt import PyJWTSet
2827

2928

3029
from intuitlib.enums import Scopes
@@ -165,9 +164,8 @@ def validate_id_token(id_token, client_id, intuit_issuer, jwk_uri):
165164
return False
166165

167166
message = id_token_parts[0] + '.' + id_token_parts[1]
168-
keys_dict = get_jwk(id_token_header['kid'], jwk_uri)
167+
public_key = get_jwk(id_token_header['kid'], jwk_uri)
169168

170-
public_key = jwk.construct(keys_dict)
171169
is_signature_valid = public_key.verify(message.encode('utf-8'), id_token_signature)
172170
return is_signature_valid
173171

@@ -178,15 +176,14 @@ def get_jwk(kid, jwk_uri):
178176
:param jwk_uri: JWK URI
179177
180178
:raises HTTPError: if response status != 200
181-
:return: dict containing keys
179+
:return: Algorithm with the key loaded.
182180
"""
183181

184182
response = requests.get(jwk_uri)
185183
if response.status_code != 200:
186184
raise AuthClientError(response)
187185
data = response.json()
188-
keys = next(key for key in data["keys"] if key['kid'] == kid)
189-
return keys
186+
return PyJWTSet.from_dict(data)[kid]
190187

191188
def _correct_padding(val):
192189
"""Correct padding for JWT

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
python_jose>=2.0.2
21
requests>=2.13.0
32
mock>=2.0.0
43
requests_oauthlib>=1.0.0
@@ -8,3 +7,4 @@ pytest>=3.8.0
87
pytest-cov==2.5.0
98
six>=1.10.0
109
enum-compat
10+
pyjwt

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
packages=find_packages(exclude=('tests*',)),
3131
namespace_packages=('intuitlib',),
3232
install_requires=[
33-
'python_jose>=2.0.2',
33+
'pyjwt',
3434
'requests>=2.13.0',
3535
'requests_oauthlib>=1.0.0',
3636
'six>=1.10.0',

0 commit comments

Comments
 (0)