2012-02-02 4 views
2

Недавно я добавил дополнительный сервер аутентификации, чтобы пользователи могли входить в систему, используя либо свой адрес электронной почты, либо имя пользователя, но, похоже, он разбивает django-social-auth, поскольку после включения его, когда я пытаюсь войти в систему через Facebook, я получаю сообщение Incorrect authentication serviceEmail auth backend breaks django-social-auth

код бэкенд является:

class EmailBackend: 
    supports_object_permissions = False 
    supports_anonymous_user = False 
    supports_inactive_user = False 

    def authenticate(self, username=None, password=None): 
     if email_re.search(username): 
      try: 
       user = User.objects.get(email=username) 
      except User.DoesNotExist: 
       return None 
     else: 
      try: 
       user = User.objects.get(username=username) 
      except User.DoesNotExist: 
       return None 
     if user.check_password(password): 
      return user 
     return None 

    def get_user(self, user_id): 
     try: 
      return User.objects.get(pk=user_id) 
     except User.DoesNotExist: 
      return None 

Я получил фрагмент кода Django snippets

Мои AUTHENTICATION_BACKENDS:

AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend', 
    'social_auth.backends.facebook.FacebookBackend', 
    'apps.members.backends.EmailBackend', 
) 

ответ

0

Я успешно использовал брандмауэр электронной почты с django-social-auth. Я не помню, чтобы я сделал что-то особенное для работы, поэтому это может быть что-то не очевидное, вот только отличия, которые я вижу с моим кодом:

У меня был адрес электронной почты, указанный в его списке AUTHENTICATION_BACKENDS, что может иметь некоторое значение здесь.

Я не определил ни одного из supports_object_permissionssupports_anonymous_usersupports_inactive_user.

+0

Интересно, я посмотрю, поможет ли этот совет. Хотя я уже перешел на [Django Email Auth] (https://github.com/strange/django-email-auth) –

+0

, это предложение не помогло , но спасибо за помощь ... на данный момент я просто буду отмечать ваш ответ как ответ. Я все еще приложение e-mail-auth работает нормально ... если оно не сломано, не связывайтесь с ним –