【问题标题】:Add to default field selectors with python social oauth2使用 python social oauth2 添加到默认字段选择器
【发布时间】:2015-02-11 18:14:47
【问题描述】:

我已按照此处的 LinkedIn 配置说明在我的 Django 设置中设置了 SOCIAL_AUTH_LINKEDIN_FIELD_OAUTH2_SELECTORS 字段:http://psa.matiasaguirre.net/docs/backends/linkedin.html

但是当我运行身份验证时,添加到该设置的附加电子邮件选择器不会添加到后端调用中的选择器列表中。

当我删除字段 SOCIAL_AUTH_LINKEDIN_FIELD_OAUTH2_SELECTORS 时,我收到一条错误消息:

“设置”对象没有属性 'SOCIAL_AUTH_LINKEDIN_FIELD_OAUTH2_SELECTORS'

所以我知道我使用了正确的设置名称。

但没有一个添加的参数进入后端:

settings.SOCIAL_AUTH_LINKEDIN_FIELD_OAUTH2_SELECTORS = ['id', 'recommendations-received', 'positions', 'email-address', 'headline', '行业','名字','姓氏','位置','连接数', “技能”]

我打印出后端的结果,总是只得到默认的选择器列表:

[编辑的后端/linkedin.py 来自 https://github.com/omab/python-social-auth/blob/master/social/backends/linkedin.py#L32]

def user_details_url(self):
    # use set() since LinkedIn fails when values are duplicated
    fields_selectors = list(set(['first-name', 'id', 'last-name'] +
                            self.setting('FIELD_SELECTORS', [])))

    print fields_selectors

    # user sort to ease the tests URL mocking
    fields_selectors.sort()
    fields_selectors = ','.join(fields_selectors)
    return self.USER_DETAILS.format(fields_selectors)

#> ['first-name', 'id', 'last-name']

如何通过DJANGO设置添加选择器来扩展认证时返回的数据?

【问题讨论】:

  • 我认为正确的参数是使用SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS
  • 虽然使用它并没有导致错误,但为该参数列出的选择器都没有工作:-/我想出了一个出路,但这有点像黑客;我认为问题是系统的错误。我将在下面列出它作为答案。

标签: django oauth linkedin python-social-auth


【解决方案1】:

阿米尔的建议奏效了!:

SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS

我最终向 social.strategies.django_strategies 添加了一条打印语句,并列出了所有被拉取的设置:

    def get_setting(self, name):
        print name
        return getattr(settings, name)

上市..​​.

# SOCIAL_AUTH_REDIRECT_IS_HTTPS
# REDIRECT_IS_HTTPS
# SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY
# SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET 
# SOCIAL_AUTH_LINKEDIN_OAUTH2_REQUESTS_TIMEOUT 
# SOCIAL_AUTH_REQUESTS_TIMEOUT
# REQUESTS_TIMEOUT 
# SOCIAL_AUTH_LINKEDIN_OAUTH2_URLOPEN_TIMEOUT 
# SOCIAL_AUTH_URLOPEN_TIMEOUT
# URLOPEN_TIMEOUT 
# SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS

....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2021-12-11
    • 2014-04-11
    • 2019-07-26
    相关资源
    最近更新 更多