2

我正在使用 python-social-auth 并且我成功地能够使用他的 Facebook 帐户对用户进行身份验证,但只有电子邮件被保留。我如何能:

  1. 坚持生日?
  2. 添加和保留不是来自 FB 的信息,比如他的宠物名字?(据我所知,我将不得不使用管道但不知道如何)

任何帮助将不胜感激。

提前致谢!

PS:有足够声誉的人会创建标签“python-socialauth”吗?

4

1 回答 1

2

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

其他数据必须用管道保存,这不是那么简单,但也不难做到。管道是一个将在身份验证过程中调用的函数(即使在注册、登录或关联时,该函数也需要在需要时进行检查)。该函数将获取许多参数,如strategy, backend, social, user, response, requests,details等,最好定义所需的参数,然后使用**kwargs忽略其他参数。

一旦函数被编码,它应该被添加到SOCIAL_AUTH_PIPELINE设置中(一定要添加默认条目,否则验证过程将不起作用,这些可以在这里找到http://psa.matiasaguirre.net/docs/pipeline。 html#authentication-pipeline)。

于 2013-10-27T15:36:31.190 回答