python-social-auth + мобильное приложение

У меня есть приложение django, и я создаю API для мобильного приложения. Когда дело доходит до аутентификации пользователя, я просто получаю логин + пароль и делаю стандартный вход в систему django. Когда пользователь входит в систему, я генерирую токен, сохраняю его и предоставляю мобильному приложению.

Теперь дело доходит до Facebook, и я хотел бы реализовать библиотеку python-social-auth. Я знаю, как реализовать это для стандартной сети, это действительно тривиально. Но я понятия не имею, как реализовать это в моем мобильном API и как включить туда свои токены.

Просто подумал ... Есть ли возможность выполнить программную аутентификацию, чтобы я мог создать метод API и вызывать оттуда материал социальной аутентификации? А как насчет страницы «Разрешить доступ приложению XY к вашему профилю» на стороне Facebook?

Любой совет помогает. Заранее спасибо.


person n1_    schedule 26.06.2014    source источник


Ответы (1)


документация описывает, как вы можете просто предоставить access_token для аутентификации/создания пользователя.

from django.contrib.auth import login

from social.apps.django_app.utils import psa

# Define an URL entry to point to this view, call it passing the
# access_token parameter like ?access_token=<token>. The URL entry must
# contain the backend, like this:
#
#   url(r'^register-by-token/(?P<backend>[^/]+)/$',
#       'register_by_access_token')

@psa('social:complete')
def register_by_access_token(request, backend):
    # This view expects an access_token GET parameter, if it's needed,
    # request.backend and request.strategy will be loaded with the current
    # backend and strategy.
    token = request.GET.get('access_token')
    user = request.backend.do_auth(request.GET.get('access_token'))
    if user:
        login(request, user)
        return 'OK'
    else:
        return 'ERROR'
person Acorn    schedule 09.03.2015
comment
Я делаю это, но мне также нужен токен обновления. Я получаю пользователя полностью зарегистрированным, но без refresh_token, даже когда клиент определил access_type=offline - person Diego Navarro; 31.05.2018