0

我正在创建一个网络应用程序,允许用户使用他们的 Facebook 帐户进行注册。我正在使用 django-facebook 对新用户进行身份验证/注册。我正在尝试我认为最简单的设置,使用 django 注册而不是 userena。当我使用自己的 Facebook 帐户时,一切正常:我被要求确认我允许该应用访问我的个人资料,在 auth_user 表中创建一个新帐户并且我已登录。

但是,当我以测试用户身份登录 Facebook 时,我确认我允许该应用程序,然后我被重定向到 facebook/connect/?facebook_login=1&attempt=1&code=AQBM0-z……新帐户未创建。

这是我的相关设置:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django_facebook.context_processors.facebook',
    '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',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
)

AUTHENTICATION_BACKENDS = (
    'django_facebook.auth_backends.FacebookBackend',
    'django.contrib.auth.backends.ModelBackend',
)

FACEBOOK_APP_ID = NNN
FACEBOOK_APP_SECRET = NNNN
FACEBOOK_REGISTRATION_BACKEND ='django_facebook.registration_backends.FacebookRegistrationBackend'

AUTH_PROFILE_MODULE = 'django_facebook.FacebookProfile' 
4

1 回答 1

1

似乎整个问题是 django-facebook 从 facebook 数据中删除了长电子邮件。这使得身份验证无法创建帐户。

我刚刚在 api.py 中注释掉了以下几行

if len(user_data.get('email', '')) > 75:
    #no more fake email accounts for facebook
    del user_data['email']
于 2013-02-18T18:10:33.667 回答