Страницы

Поиск по вопросам

среда, 17 июля 2019 г.

Django allauth как получить токен юзера с которого открыта сессия в браузере?

Доброе утро.
Нужно запостить картинку на стену vk от имени юзера который залогинился на сайте.
Пробовал получить его токен так.
views.py social_accounts = SocialAccount.objects.filter(provider='vk') for social_account in social_accounts: socialtokens = SocialToken.objects.filter(id=social_account.id)
Но мне выдает токен не того кто залогинился на сайте, а первого зарегенного через соцсеть и плюс выдает этот токен в пользование даже тем кто не авторизован.
С неавторизованными вроде разобрался. Наверно не правильно, но они уже не могут выполнить заветное действие.
if request.user.is_authenticated: return render(request, 'parsing/Page1.html', {'values': ['Hello']}) else: return render(request, 'parsing/Page2.html', {'values': ['не Hello']})
А вот получить токен юзера с которого открыта сессия не получается. Подскажите, где можно найти решение? в документации на офф сайте такого не нашел. По форумам тоже ничего похожего не нагуглил.
Python3.6 Django2.0


Ответ

Ну как мне кажется, сначала вам нужно найти нужный аккаунт для пользователя с сессии. Затем если данный аккаунт существует, искать по этому аккаунту уже его токен.
social_account = SocialAccount.objects.filter(provider='vk', user=request.user.pk) socialtoken = SocialToken.objects.filter(account=social_account.pk)
Так должно сработать
social_account = SocialAccount.objects.get(provider='vk', user=request.user.pk) social_token = SocialToken.objects.get(account=social_account)

Комментариев нет:

Отправить комментарий