platform/web/views/vk_auth.py
Administrator 53b9f9d840 vk
2023-09-23 19:10:06 +03:00

32 lines
1.2 KiB
Python

from requests import get
from BaseLib.BaseView import BaseView
from Platform import settings
class VKAuthView(BaseView):
required_login = True
endpoint = "vk_auth"
view_file = "vk_auth.html"
fields_except = ('user_id',)
def get(self):
access_token = self.request.GET.get('access_token')
if access_token is None:
if self.request.GET.get("error") == "access_denied":
return "/profile"
return
token = settings.VK_SERVICE_TOKEN
resp = get(f'https://api.vk.com/method/secure.checkToken?token={access_token}&access_token={token}&v=5.131').json()
print(resp)
if 'response' in resp and 'success' in resp['response'] and resp['response']['success'] == 1:
user_id = resp['response']['user_id']
resp = get(f'https://api.vk.com/method/users.get?access_token={token}&user_ids={user_id}&v=5.131',
headers={"accept-language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"})
if resp.status_code != 200:
return "/profile"
data = resp.json()['response'][0]
self.request.user.vk_id = data['id']
self.request.user.save()
return "/profile"