我正在使用django和django-allauth。我可以使用facebook提供程序成功验证用户身份。问题是创建的用户对象的所有字段都为空(名字,姓氏和电子邮件),用户名设置为'user'(我假设它是生成器的默认值)。我还有一个与此用户关联的社交帐户对象,其在额外数据字段中包含以下数据:
{"name": "my_first_name my_second_name", "id": "my_uuid"}
我已检查覆盖SocialAccountAdapter populate_user function但数据参数包含一个字典,其中名字,姓氏和电子邮件为空。
搜索代码,在https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/providers/base.py#L50中,响应仅包含
{"name": "my_first_name my_second_name", "id": "my_uuid"}
所以我假设我有一个与Facebook提供商有某种配置错误。
我的脸书设置:
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': [
'email',
'public_profile',
'user_friends'
],
'FIELDS': [
'id',
'email',
'name',
'first_name',
'last_name',
'verified',
'locale',
'timezone',
'link',
'gender',
'updated_time'
],
'AUTH_PARAMS': {
#'auth_type': 'reauthenticate'
},
'METHOD': 'oauth2',
#'LOCALE_FUNC': 'path.to.callable',
'VERIFIED_EMAIL': True,
'VERSION': 'v2.4'
}
}
编辑:我按照WizKid的建议将FIELDS添加到设置中,但没有进展
答案 0 :(得分:0)
从v.021升级到v.023解决了这个问题。