Skip to content

Commit 1d52e54

Browse files
committed
Fix the way errors of get_access_token and regenerate_token are handled, v2 endpoint always return 200 status code so may inspect the response body
1 parent a9e369c commit 1d52e54

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

src/onelogin/api/client.py

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,16 @@ def get_access_token(self):
227227

228228
response = requests.post(url, headers=headers, json=data)
229229
if response.status_code == 200:
230-
token = OneLoginToken(response.json())
231-
self.access_token = token.access_token
232-
self.refresh_token = token.refresh_token
233-
self.expiration = token.created_at + datetime.timedelta(seconds=token.expires_in)
234-
return token
230+
data = response.json()
231+
if 'status' in data:
232+
self.error = str(data['status']['code'])
233+
self.error_description = self.extract_error_message_from_response(response)
234+
else:
235+
token = OneLoginToken(response.json())
236+
self.access_token = token.access_token
237+
self.refresh_token = token.refresh_token
238+
self.expiration = token.created_at + datetime.timedelta(seconds=token.expires_in)
239+
return token
235240
else:
236241
self.error = str(response.status_code)
237242
self.error_description = self.extract_error_message_from_response(response)
@@ -265,11 +270,16 @@ def regenerate_token(self):
265270

266271
response = requests.post(url, headers=headers, json=data)
267272
if response.status_code == 200:
268-
token = OneLoginToken(response.json())
269-
self.access_token = token.access_token
270-
self.refresh_token = token.refresh_token
271-
self.expiration = token.created_at + datetime.timedelta(seconds=token.expires_in)
272-
return token
273+
data = response.json()
274+
if 'status' in data:
275+
self.error = str(data['status']['code'])
276+
self.error_description = self.extract_error_message_from_response(response)
277+
else:
278+
token = OneLoginToken(response.json())
279+
self.access_token = token.access_token
280+
self.refresh_token = token.refresh_token
281+
self.expiration = token.created_at + datetime.timedelta(seconds=token.expires_in)
282+
return token
273283
else:
274284
self.error = str(response.status_code)
275285
self.error_description = self.extract_error_message_from_response(response)

0 commit comments

Comments
 (0)