将其他信息保存到Facebook认证用户?

时间:2013-10-25 18:52:35

标签: python django facebook django-socialauth

我正在使用python-social-auth,我已经成功地使用他的Facebook帐户验证用户,但只保留了电子邮件。我如何:

  1. 坚持生日?
  2. 添加并保留不是来自FB的信息,比如他的宠物名称? (据我所知,我将不得不使用管道,但不知道如何)
  3. 任何帮助将不胜感激。

    提前致谢!

    PS:有声誉的人会创建一个标签'python-socialauth'吗?

1 个答案:

答案 0 :(得分:2)

出生日期持久性就像定义SOCIAL_AUTH_FACEBOOK_EXTRA_DATA = [('birthdate', 'birthdate')]一样简单,之后您可以通过user.social_auth.get(provider='facebook').extra_data['birthdate']来访问它。

其他数据必须使用管道保存,这不是那么简单,但并不难。管道是在auth过程中调用的函数(即使在注册,登录或关联时,如果需要,函数也需要检查)。该函数将获得许多参数,例如strategybackendsocialuserresponserequestsdetails,等等,最好定义所需的参数,然后使用**kwargs忽略其他参数。

一旦函数被编码,它应该被添加到SOCIAL_AUTH_PIPELINE设置(确保也添加默认条目,或者auth过程不起作用,可以在这里找到http://psa.matiasaguirre.net/docs/pipeline.html#authentication-pipeline