【发布时间】:2019-04-04 01:35:26
【问题描述】:
对于我的第一个 Django 项目,我想将 Python Social Auth 用于社交身份验证(即 Facebook)。
Django==2.0
social-auth-app-django==2.1.0
social-auth-core==1.7.0
如何从已登录用户的个人资料中检索额外数据?我的目标是根据他们所属的 FB 组将登录用户过滤到自定义组。但是此时我什至无法收到电子邮件,只有用户名。
在我的 settings.py 中:
SOCIAL_AUTH_FACEBOOK_KEY = 'xxxx'
SOCIAL_AUTH_FACEBOOK_SECRET = 'xxxx'
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email', 'groups_access_member_info']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'fields': 'id, name, email',
'edges': 'groups'
}
管道是基本的管道:
SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.social_auth.social_details',
'social_core.pipeline.social_auth.social_uid',
'social_core.pipeline.social_auth.auth_allowed',
'social_core.pipeline.social_auth.social_user',
'social_core.pipeline.user.get_username',
'social_core.pipeline.user.create_user',
'social_core.pipeline.social_auth.associate_user',
'social_core.pipeline.social_auth.load_extra_data',
'social_core.pipeline.user.user_details',
)
我不是要求完整的代码,任何帮助将不胜感激。
提前谢谢你!
【问题讨论】:
-
你需要写自定义管道,试试这个gist.github.com/revolunet/5104376
标签: python django facebook python-social-auth