Mou*_*Lin 6 django python-social-auth
我正在使用 python-social-auth 从 LinkedIn 登录我自己的 Web 应用程序。我成功登录并重定向到我的主页。下一步是利用额外数据(即 UserSocialAuth.extra_data)。谁能举例说明如何访问 Django 模板或 Django 视图中的额外数据?
这是我的设置。
SOCIAL_AUTH_LOGIN_URL = ''
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_OAUTH2_SCOPE = ['r_basicprofile', 'r_emailaddress', 'rw_company_admin', 'w_share']
SOCIAL_AUTH_LINKEDIN_OAUTH2_FIELD_SELECTORS = ['first-name', 'last-name', 'email-address', 'headline']
SOCIAL_AUTH_LINKEDIN_OAUTH2_EXTRA_DATA = [('id', 'id'),
('first-name', 'first_name'),
('last-name', 'last_name'),
('email-address', 'email_address'),
('headline', 'headline'),
('industry', 'industry')]
Run Code Online (Sandbox Code Playgroud)
我要做的是:
<html><body>Here we go! {{ user.first_name }} {{ user.last_name }}
{{ user.email }}
{{ user.extra_data.headline }}</body></html>
Run Code Online (Sandbox Code Playgroud)
任何意见将不胜感激!
您可以像这样访问 Django 视图中的数据:
if request.user.is_authenticated:
linkedin_user = request.user.social_auth.get(provider ='linkedin-oauth2')
extra_data = linkedin_user.extra_data
Run Code Online (Sandbox Code Playgroud)
然后您可以将数据注入到要显示的模板中
| 归档时间: |
|
| 查看次数: |
1415 次 |
| 最近记录: |