Skip to content

Commit b2e72a3

Browse files
committed
Fix auth
1 parent 4755517 commit b2e72a3

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

vk_api/vk_api.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import re
1313
import threading
1414
import time
15-
from urllib.parse import urlparse, parse_qs
15+
import urllib.parse
1616

1717
import requests
1818
import 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

0 commit comments

Comments
 (0)