使用 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 解决了这个问题。
我正在使用 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 解决了这个问题。