gpt4 book ai didi

Python Social Auth with Django - 如何检索额外数据?

转载 作者:行者123 更新时间:2023-12-01 01:29:01 24 4
gpt4 key购买 nike

对于我的第一个 Django 项目,我想结合 Python Social Auth 进行社交身份验证(即 Facebook)。
Django==2.0
Social-auth-app-django==2.1.0
社交认证核心==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',
)

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

提前谢谢您!

最佳答案

python-social-auth将仅存储填充模型字段所需的基本用户信息(如果提供者的身份验证有效负载中有任何额外内容),并且它在 EXTRA_DATA 中进行配置。设置时,它也会作为 extra_data 的一部分存储在社交相关类中。属性。

仍然,python-social-auth不会调用提供程序中的任何其他 API 来获取其他数据,为此,您需要增强 PIPELINE使用将在 Facebook 上调用这些附加端点的方法,一旦获得响应,您就可以存储它(如果它适合您的项目)。

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

关于Python Social Auth with Django - 如何检索额外数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53073984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com