使用 django allauth facebook 提供程序时清空用户字段

Empty user fields when using django allauth facebook provider

我正在使用 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 添加到设置中,但没有任何进展

从 v.021 升级到 v.023 解决了这个问题。