django 社交身份验证注册 facebook 电子邮件
django social auth registration facebook email
您好,我想允许用户通过 facebook login/register。
身份验证有效,但后端使用名字和姓氏(来自 Facebook)的组合创建用户实例作为用户名,没有电子邮件。
Google oauth2 后端工作正常。
这是我的设置:
FACEBOOK_APP_ID = 'appid'
FACEBOOK_API_SECRET = 'apisecret'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
SOCIAL_AUTH_CREATE_USERS = True
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
SOCIAL_AUTH_DEFAULT_USERNAME = 'socialauth_user'
SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
LOGIN_ERROR_URL = '/login/error/'
LOGIN_REDIRECT_URL = '/'
SOCIAL_AUTH_USER_MODEL = 'users.User'
SESSION_SERIALIZER = django.contrib.sessions.serializers.PickleSerializer'
我的应用程序应该使用充满来自 facebook 的数据(电子邮件)的电子邮件来创建用户。
我无法克服这一点。
有人可以帮忙吗?
在 python-social-auth(取代 django-social-auth)中,您必须设置这两项才能从 FB 获取电子邮件:
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'locale': 'pl_PL',
'fields': 'id, name, email',
}
SOCIAL_AUTH_FACEBOOK_SCOPE
相当于FACEBOOK_EXTENDED_PERMISSIONS
,我猜SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS
相当于FACEBOOK_PROFILE_EXTRA_PARAMS
。所以我会尝试:
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
FACEBOOK_PROFILE_EXTRA_PARAMS = {
'locale': 'pl_PL',
'fields': 'id, name, email',
}
您好,我想允许用户通过 facebook login/register。 身份验证有效,但后端使用名字和姓氏(来自 Facebook)的组合创建用户实例作为用户名,没有电子邮件。 Google oauth2 后端工作正常。
这是我的设置:
FACEBOOK_APP_ID = 'appid'
FACEBOOK_API_SECRET = 'apisecret'
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
SOCIAL_AUTH_CREATE_USERS = True
SOCIAL_AUTH_FORCE_RANDOM_USERNAME = False
SOCIAL_AUTH_DEFAULT_USERNAME = 'socialauth_user'
SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
LOGIN_ERROR_URL = '/login/error/'
LOGIN_REDIRECT_URL = '/'
SOCIAL_AUTH_USER_MODEL = 'users.User'
SESSION_SERIALIZER = django.contrib.sessions.serializers.PickleSerializer'
我的应用程序应该使用充满来自 facebook 的数据(电子邮件)的电子邮件来创建用户。 我无法克服这一点。 有人可以帮忙吗?
在 python-social-auth(取代 django-social-auth)中,您必须设置这两项才能从 FB 获取电子邮件:
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = {
'locale': 'pl_PL',
'fields': 'id, name, email',
}
SOCIAL_AUTH_FACEBOOK_SCOPE
相当于FACEBOOK_EXTENDED_PERMISSIONS
,我猜SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS
相当于FACEBOOK_PROFILE_EXTRA_PARAMS
。所以我会尝试:
FACEBOOK_EXTENDED_PERMISSIONS = ['email']
FACEBOOK_PROFILE_EXTRA_PARAMS = {
'locale': 'pl_PL',
'fields': 'id, name, email',
}