django-allauth 不保存 google 额外数据

django-allauth not saving google extra data

这是我的 settings.py

# other settings

SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'SCOPE': [
            'email',
            'public_profile',
            'user_friends',
            'user_gender',
            'user_birthday',
            'user_location',
            'user_link',
            'user_age_range',
        ],
        'FIELDS': [
            'id',
            'first_name',
            'last_name',
            'middle_name',
            'name',
            'short_name',
            'name_format',
            'gender',
            'birthday',
            'age_range',
            'friends',
            'location',
            'picture',
            'link',
        ],
        'EXCHANGE_TOKEN': True,
        'VERIFIED_EMAIL': False,
        'VERSION': 'v7.0',
    },
    'google': {
        'SCOPE': [
            'https://www.googleapis.com/auth/userinfo.profile',
            'https://www.googleapis.com/auth/userinfo.email',
            'https://www.googleapis.com/auth/user.emails.read',
            'https://www.googleapis.com/auth/user.phonenumbers.read',
            'https://www.googleapis.com/auth/user.birthday.read',
            'https://www.googleapis.com/auth/profile.agerange.read',
            'https://www.googleapis.com/auth/user.addresses.read',
        ],
        'AUTH_PARAMS': {
            'access_type': 'online',
        }
    }
}

它在 facebook 上运行良好,我在那里得到了我想要的,但是在 google 上一切正常,同时签名(请求权限.. 一切顺利)它对用户进行身份验证并将其保存在数据库中,但是在 extra data 字段上我只是得到

{
  "id": "...",
  "email": "...",
  "verified_email": true,
  "name": "..",
  "given_name": "..",
  "picture": "..",
  "locale": "en"
}

生日性别地址 agerange 和其他字段。

Data protected birthday, gender, addresses, agerange等字段一般默认设置为Private。因此,外部 API 访问仅限于给定用户的 Public 字段。

例如生日:

如果您访问自己的帐户 birthday。您会注意到它可能设置为 'Only Me',表示它已设置为私有。

为了访问您被限制访问的所有字段,您必须更改所有组件的配置文件配置,使它们 Public.