【问题标题】:Save additional info to Facebook authenticated user?向 Facebook 认证用户保存其他信息?
【发布时间】:2013-10-25 18:52:35
【问题描述】:

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

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

我们将不胜感激。

提前致谢!

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

【问题讨论】:

    标签: python django facebook django-socialauth


    【解决方案1】:

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

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

    函数编码后,应将其添加到SOCIAL_AUTH_PIPELINE 设置中(请务必同时添加默认条目,否则身份验证过程将不起作用,可以在此处找到http://psa.matiasaguirre.net/docs/pipeline.html#authentication-pipeline)。

    【讨论】:

    • 是否应该将宠物名添加到extra_data字段中,只要是json格式的字段即可?它会给我带来 python-social-auth 的问题吗?
    • 不知道有没有说清楚,我说的是使用管道函数添加宠物名。明白了吗?
    • 你可以在extra_data中添加任何你想要的东西,也可以在管道函数中添加任何东西到details中,也可以在_EXTRA_DATA设置中定义名称,它也会被存储。
    猜你喜欢
    • 2018-09-13
    • 2012-01-20
    • 2012-05-11
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多