2016-04-21 60 views
0

我可以成功登录使用Facebook和谷歌,但我可以显示的是用户名。现在我想显示用户名。我该如何去做。我读了Facebook没有提供详细信息,如默认的电子邮件ID和像这些细节需要被要求。我补充说,但我不知道如何访问这些数据。 settings.py如何取得用户的电子邮件ID使用django社交认证的脸谱和谷歌

SOCIAL_AUTH_FACEBOOK_KEY = '***' 
SOCIAL_AUTH_FACEBOOK_SECRET = '***' 
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email'] 
FACEBOOK_EXTENDED_PERMISSIONS = ['email'] 
SOCIAL_AUTH_FACEBOOK_PROFILE_EXTRA_PARAMS = { 
    'locale': 'ru_RU', 
    'fields': 'id, name, email, age_range' 
} 

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = '***' 
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = '***' 
GOOGLE_DISPLAY_NAME = '' 


LOGIN_REDIRECT_URL = '/' 

# Application definition 

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'thirdauth', 
    'social.apps.django_app.default', 
) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth', 
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'django.core.context_processors.static', 
    'django.core.context_processors.tz', 
    'django.contrib.messages.context_processors.messages', 
    'social.apps.django_app.context_processors.backends', 
    'social.apps.django_app.context_processors.login_redirect', 
) 

AUTHENTICATION_BACKENDS = (
    'social.backends.facebook.FacebookOAuth2', 
    'social.backends.google.GoogleOAuth2', 
    'social.backends.twitter.TwitterOAuth', 
    'django.contrib.auth.backends.ModelBackend', 
) 

views.py

context = RequestContext(request, 
          {'request': request, 
          'user': request.user}) 
    return render_to_response('home.html', 
          context_instance=context) 

任何帮助将appriciated。

回答

0

在Django中有一些很棒的包来处理社交身份验证。我更喜欢你应该使用django-allauth。 Allauth已经解决了这个用例。当用户被要求用Facebook登录时,allauth在通过同意屏幕询问同意后获取电子邮件。您可以使用django管理面板一次allauth setup查看这些电子邮件和用户帐户,并完成迁移。

相关问题