【问题标题】:How to fetch email Id of user using django social auth for facebook and google如何使用 django social auth for facebook 和 google 获取用户的电子邮件 ID
【发布时间】:2016-04-21 12:57:36
【问题描述】:

我可以使用 facebook 和 google 成功登录,但我只能显示用户名。现在我也想显示用户名。我该怎么做。我读到Facebook默认不提供电子邮件ID等详细信息,需要请求此类详细信息。我已经添加了,但我不知道如何访问这些数据。 设置.py

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)

如有任何帮助,将不胜感激。

【问题讨论】:

    标签: python django facebook django-socialauth


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-02
      • 2014-03-24
      • 1970-01-01
      • 2018-03-30
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      相关资源
      最近更新 更多