PythonSocial Auth with Django如何检索额外数据?

2024-04-26 00:06:29 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的第一个Django项目中,我想将Python Social Auth绑定到社交身份验证(即Facebook)。
Django==2.0
社交认证应用django==2.1.0
社交授权核心==1.7.0

如何从登录用户的配置文件中检索额外数据?我的目标是根据用户所属的FB组将登录用户筛选到自定义组。不过,在这一点上,我甚至不能得到电子邮件,只有用户名。在

在我的设置.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'
}

管道是基本管线:

^{pr2}$

我不是要求完整的代码,任何帮助将不胜感激。在

提前谢谢你!在


Tags: 项目django用户auth身份验证facebookemailsocial
1条回答
网友
1楼 · 发布于 2024-04-26 00:06:29

python-social-auth将只存储填充模型字段所需的基本用户信息,如果任何额外的信息是提供者的auth有效负载的一部分,并且在EXTRA_DATA设置中进行了配置,那么它也将作为extra_data属性的一部分存储在社交类中。在

尽管如此,python-social-auth不会调用提供程序中的任何其他API来获取额外的数据,要实现这一点,您需要使用将在Facebook上调用这些附加端点的方法来增强PIPELINE,一旦得到响应,您就可以将其存储在适合您的项目中的情况下。在

要调试默认情况下来自提供者的内容,请在步骤(social_core.pipeline.debug.debug)之间添加debug管道。如果要查找的内容已经是有效负载的一部分,请记下密钥名称并将其添加到EXTRA_DATA设置中。如果不是,那么您需要添加一个方法来调用Facebook API来检索额外的信息。在

相关问题 更多 >