2013-02-17 150 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']