2015-07-21 102 views
0

你好,我希望允许用户通过Facebook登录/注册。 身份验证有效,但是后端使用名字和姓氏(来自Facebook)的组合作为用户名和电子邮件创建用户实例。 谷歌oauth2后端工作得很好。django社交认证注册Facebook电子邮件

这里是我的设置:

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的电子邮件用户填充数据(电子邮件)。 我无法克服这一点。 任何人都可以帮忙吗?

+0

面对同样的问题,你有任何解决方案? –

回答

0

python-social-auth(代替Django的社会身份验证),你必须设置这两个从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', 
} 
相关问题