2012-04-19 3 views
2

Я попросил предоставить функциональность «Войти с Facebook» в приложение iOS, которое я создаю. Приложение подключается к REST api, созданному с помощью Piston, веб-приложение создается с помощью Django и использует social_auth. Приложение также имеет вход в систему Facebook.Вход REST с Django social_auth

Моя мысль заключалась в создании сервиса «FBLogin», обеспечивающего только UID профиля Facebook (отдельная процедура входа FB на iPhone для получения идентификатора). Используя модели SocialAuth, я могу запросить БД с помощью uid и провайдера для извлечения пользователя ... но как я могу использовать механизм аутентификации для проверки подлинности этого экземпляра пользователя?

Любые идеи по правильному праву? Это просто не очень хорошо ... получение экземпляра пользователя завершено, это боль ...

Идентификация пароля пользователя уже реализована ... без проблем.

Btw, не имеют опыта Джанго ... есть много других опыт разработки так понимание питона и Джанго не так сложно :)

Tx Y

+0

, о котором мы говорим? https://github.com/omab/django-social-auth –

+0

https://github.com/agiliq/Django-Socialauth? –

+0

https://github.com/omab/django-social-auth :-) У меня сейчас есть удовлетворительное решение, но все же хочу знать, как обращаться с такой аутентификацией через REST. – Yoeri

ответ

1

Это не на самом деле, кажется, быть задокументированы в любом месте, но вы можете сделать это в REST обработчика:

from social_auth.backends.pipeline.social import associate_user 
from social_auth.backends.facebook import FacebookBackend 
from social_auth.models import UserSocialAuth 
myextra_data = { 
    'access_token' : 'jfkdlfsdgeyejfghfdsjdfpoweipuo', 
    'id' : 123456789, 
} 
usa, created = UserSocialAuth.objects.get_or_create(provider = 'facebook', 
                 uid=123456789) 
usa.user = user 
usa.extra_data = myextra_data 
usa.save() 
if created: 
    associate_user(backend=FacebookBackend, user=user, uid=usa.uid) 

Они получают довольно конкретного производителя с точки зрения того, как получает данные отформатированы в extra_data так YMMV

Смежные вопросы