使用Django social_auth登录REST

时间:2012-04-19 16:52:59

标签: django rest django-piston django-socialauth

我被要求提供一个"登录Facebook"我正在创建的iOS应用程序的功能。 该应用程序连接到使用Piston创建的REST API,Web应用程序使用Django创建并使用social_auth。该应用程序还有一个Facebook登录。

我的想法是创建一项服务' FBLogin'仅提供Facebook个人资料UID(在iPhone上单独的FB登录程序以获取ID)。使用SocialAuth模型我可以使用uid和provider查询数据库以获取用户...但是如何使用身份验证机制来验证此用户实例?

关于做到这一点的任何想法? 这只是感觉不好......让用户实例经过身份验证是一件痛苦的事情......

用户名密码验证已经实施......没有问题。

是的,没有django经验......确实有很多其他的开发经验,所以理解python和django并不是那么难:)

的Tx ÿ

1 个答案:

答案 0 :(得分: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

相关问题