improve error message for OAuth2 authentication

pull/133/head
Mike Fährmann 6 years ago
parent 7f4e41c989
commit 4313c95bc9
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -561,10 +561,11 @@ class DeviantartAPI():
auth = (self.client_id, self.client_secret) auth = (self.client_id, self.client_secret)
response = self.session.post(url, data=data, auth=auth) response = self.session.post(url, data=data, auth=auth)
if response.status_code != 200:
raise exception.AuthenticationError()
data = response.json() data = response.json()
if response.status_code != 200:
raise exception.AuthenticationError('"{} ({})"'.format(
data.get("error_description"), data.get("error")))
if refresh_token: if refresh_token:
_refresh_token_cache.invalidate(refresh_token) _refresh_token_cache.invalidate(refresh_token)
_refresh_token_cache(refresh_token, data["refresh_token"]) _refresh_token_cache(refresh_token, data["refresh_token"])

@ -216,7 +216,7 @@ class RedditAPI():
"""Actual authenticate implementation""" """Actual authenticate implementation"""
url = "https://www.reddit.com/api/v1/access_token" url = "https://www.reddit.com/api/v1/access_token"
if refresh_token: if refresh_token:
self.log.info("Refreshing access token") self.log.info("Refreshing private access token")
data = {"grant_type": "refresh_token", data = {"grant_type": "refresh_token",
"refresh_token": refresh_token} "refresh_token": refresh_token}
else: else:
@ -226,7 +226,8 @@ class RedditAPI():
"device_id": "DO_NOT_TRACK_THIS_DEVICE"} "device_id": "DO_NOT_TRACK_THIS_DEVICE"}
response = self.session.post(url, data=data, auth=(self.client_id, "")) response = self.session.post(url, data=data, auth=(self.client_id, ""))
if response.status_code != 200: if response.status_code != 200:
raise exception.AuthenticationError() raise exception.AuthenticationError('"{} ({})"'.format(
response.json().get("message"), response.status_code))
return "Bearer " + response.json()["access_token"] return "Bearer " + response.json()["access_token"]
def _call(self, endpoint, params): def _call(self, endpoint, params):

@ -63,9 +63,9 @@ class Job():
log = self.extractor.log log = self.extractor.log
for msg in self.extractor: for msg in self.extractor:
self.dispatch(msg) self.dispatch(msg)
except exception.AuthenticationError: except exception.AuthenticationError as exc:
log.error("Authentication failed. Please provide a valid " msg = str(exc) or "Please provide a valid username/password pair."
"username/password pair.") log.error("Authentication failed: %s", msg)
except exception.AuthorizationError: except exception.AuthorizationError:
log.error("You do not have permission to access the resource " log.error("You do not have permission to access the resource "
"at '%s'", self.url) "at '%s'", self.url)

Loading…
Cancel
Save