diff --git a/flask_oauthlib/client.py b/flask_oauthlib/client.py index 5a34d74e..2b78a8bd 100644 --- a/flask_oauthlib/client.py +++ b/flask_oauthlib/client.py @@ -530,17 +530,21 @@ def generate_request_token(self, callback=None): ) log.debug('Generate request token header %r', headers) resp, content = self.http_request(uri, headers) - if resp.code not in (200, 201): - raise OAuthException( - 'Failed to generate request token', - type='token_generation_failed' - ) data = parse_response(resp, content) - if data is None: + if not data: raise OAuthException( 'Invalid token response from %s' % self.name, type='token_generation_failed' ) + if resp.code not in (200, 201): + message = 'Failed to generate request token' + if 'oauth_problem' in data: + message += ' (%s)' % data['oauth_problem'] + raise OAuthException( + message, + type='token_generation_failed', + data=data, + ) tup = (data['oauth_token'], data['oauth_token_secret']) session['%s_oauthtok' % self.name] = tup return tup