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

时间:2015-08-14 16:36:15

标签: python django facebook django-authentication django-allauth

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

1 个答案:

答案 0 :(得分:0)

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