File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1212import re
1313import threading
1414import time
15- from urllib .parse import urlparse , parse_qs
15+ import urllib .parse
1616
1717import requests
1818import six
@@ -443,13 +443,18 @@ def _api_login(self):
443443 response = self .http .get (url )
444444
445445 if 'access_token' in response .url :
446- parsed_url = urlparse (response .url )
447- parsed_query = parse_qs (parsed_url .query )
446+ parsed_url = urllib . parse . urlparse (response .url )
447+ parsed_query = urllib . parse . parse_qs (parsed_url .query )
448448
449449 if 'authorize_url' in parsed_query :
450- parsed_url = urlparse ( parsed_query ['authorize_url' ][0 ])
450+ url = parsed_query ['authorize_url' ][0 ]
451451
452- parsed_query = parse_qs (parsed_url .fragment )
452+ if url .startswith ('https%3A' ): # double-encoded
453+ url = urllib .parse .unquote (url )
454+
455+ parsed_url = urllib .parse .urlparse (url )
456+
457+ parsed_query = urllib .parse .parse_qs (parsed_url .fragment )
453458
454459 token = {k : v [0 ] for k , v in parsed_query .items ()}
455460
You can’t perform that action at this time.
0 commit comments