【发布时间】: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