2013-02-17 2 views
0

Я создаю веб-приложение, которое позволяет пользователям регистрироваться, используя свою учетную запись Facebook. Я использую django-facebook для аутентификации/регистрации новых пользователей. Я пытаюсь, по-моему, простейшая настройка, используя регистрацию django вместо userena. Все работает хорошо, когда я использую свою собственную учетную запись Facebook: меня просят подтвердить, что я разрешаю приложению иметь доступ к моему профилю, новая учетная запись создается в таблице auth_user, и я вошел в систему.django-facebook не входит в систему facebook test user

Однако, когда Я зарегистрировался на Facebook в качестве тестового пользователя, я подтверждаю, что разрешаю приложение, а затем перенаправляюсь на facebook/connect /? Facebook_login = 1 & попытка = 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

Похоже, вся проблема в том, что Джанго-facebook удаляет длинные письма из данных facebook. Это делает auth неспособным создать учетную запись.

Я просто закомментировать следующие строки в api.py

if len(user_data.get('email', '')) > 75: 
    #no more fake email accounts for facebook 
    del user_data['email'] 
Смежные вопросы