support JSON response from auth, token endpoints
For example, the micropub.rocks auth endpoint only returns JSON-encoded responses. This implementation wraps all top-level values in the JSON object in an array to match the behavior of `parse_qs` but does not check to see if the value is already an array.
This commit is contained in:
parent
0471a3aeb8
commit
9f7bc5530b
|
@ -206,6 +206,9 @@ class MicropubClient:
|
|||
'Flask-Micropub: auth response: %d - %s', response.status_code,
|
||||
response.text)
|
||||
|
||||
try:
|
||||
rdata = dict((k,[v]) for (k,v) in response.json().items())
|
||||
except ValueError:
|
||||
rdata = parse_qs(response.text)
|
||||
if response.status_code < 200 or response.status_code >= 300:
|
||||
error_vals = rdata.get('error')
|
||||
|
@ -276,6 +279,9 @@ class MicropubClient:
|
|||
error='bad response from token endpoint: {}'
|
||||
.format(token_response))
|
||||
|
||||
try:
|
||||
tdata = dict((k,[v]) for (k,v) in token_response.json().items())
|
||||
except ValueError:
|
||||
tdata = parse_qs(token_response.text)
|
||||
if 'access_token' not in tdata:
|
||||
return AuthResponse(
|
||||
|
|
Loading…
Reference in New Issue