【发布时间】:2016-05-11 12:34:20
【问题描述】:
我是 Python 社交身份验证的新手。 关注了 StackOverflow 的不同问题,但不明白。 我想使用 python social auth 获取用户的 Linkedin profile_url。
我的setting.py中有以下设置
AUTHENTICATION_BACKENDS = (
'social.backends.linkedin.LinkedinOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details'
)
SOCIAL_AUTH_LINKEDIN_SCOPE = ['r_basicprofile', 'r_emailaddress']
SOCIAL_AUTH_LINKEDIN_FIELD_SELECTORS = ['picture-url', 'email-address', 'headline', 'industry']
SOCIAL_AUTH_LINKEDIN_EXTRA_DATA = [('id', 'li_id'),
('firstName', 'first_name'),
('lastName', 'last_name'),
('emailAddress', 'email_address'),
('headline', 'headline'),
('picture-url', 'picture_url')]
SOCIAL_AUTH_LINKEDIN_OAUTH2_KEY = 'some_key'
SOCIAL_AUTH_LINKEDIN_OAUTH2_SECRET = 'some_secret'
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/home/'
SOCIAL_AUTH_LOGIN_URL = '/'
当我在视图中使用以下代码获取额外数据时,它会报错:-
Exception Type: KeyError
Exception Value: 'emailAddress'
因为 emailAddress 没有填充到 extra_data 字段中。 用户社交身份验证模型中仅填充了 uid、first_name、last_name 和 access_token。
如何保存模型中的所有用户信息。? 是否缺少某些内容,或者请建议如何使用 python social auth 从 LinkedIn 获取用户信息。
【问题讨论】:
标签: python django linkedin python-social-auth