2013-02-17 157 views
0

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

但是,我作为测试用户登录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' 

回答

1

好像整个问题是,Django的Facebook的去除Facebook的数据长的电子邮件。这使得身份验证无法创建帐户。

我只是注释掉在api.py以下行

if len(user_data.get('email', '')) > 75: 
    #no more fake email accounts for facebook 
    del user_data['email']