This commit is contained in:
Egor Matveev
2022-04-02 18:42:58 +03:00
parent 5f80636349
commit fa65d90a65
12 changed files with 108 additions and 3 deletions

View File

@@ -0,0 +1,27 @@
import os
from django.contrib.auth import login
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from requests import get
from SprintLib.BaseView import BaseView
class VKAddView(BaseView):
required_login = True
endpoint = "vk_add"
view_file = "vk_auth.html"
fields_except = ('user_id',)
def get(self):
if not self.request.GET:
return
access_token = self.request.GET['access_token']
token = os.getenv("VK_SERVICE_TOKEN")
resp = get(f'https://api.vk.com/method/secure.checkToken?token={access_token}&access_token={token}').json()
if 'success' in resp and resp['success'] == 1:
user_id = resp['user_id']
self.request.user.userinfo.vk_user_id = user_id
self.request.user.userinfo.save()
return '/account'

View File

@@ -0,0 +1,31 @@
import os
from django.contrib.auth import login
from django.contrib.auth.models import User
from django.core.exceptions import ObjectDoesNotExist
from requests import get
from SprintLib.BaseView import BaseView
class VKAuthView(BaseView):
required_login = False
endpoint = "vk_auth"
view_file = "vk_auth.html"
fields_except = ('user_id',)
def get(self):
if not self.request.GET:
return
access_token = self.request.GET['access_token']
token = os.getenv("VK_SERVICE_TOKEN")
resp = get(f'https://api.vk.com/method/secure.checkToken?token={access_token}&access_token={token}').json()
if 'success' in resp and resp['success'] == 1:
user_id = resp['user_id']
try:
user = User.objects.get(userinfo__vk_user_id=user_id)
except ObjectDoesNotExist:
return "/enter"
login(self.request, user)
return "/"
return "/enter"

View File

@@ -0,0 +1,2 @@
from .VKAuthView import VKAuthView
from .VKAddView import VKAddView