Бэкэндс аутентификации позволяет изменить метод проверки учетных данных ваших пользователей.
Для веб-сервисов, то есть аутентификации Facebook, у вас нет доступа к пользовательским данным, таким как пароль. Без пароля ( не похоже на случайную строку ) мы не сможем создать пользователя в django. Подключение Facebook предоставляет вам информацию о текущем аутентифицированном пользователе.
Бэкэндс аутентификации позволяет изменить метод проверки учетных данных ваших пользователей.
Пример использования пользовательского бэкэнда аутентификации:
Для веб-сервисов, то есть аутентификации Facebook, у вас нет доступа к пользовательским данным, таким как пароль. Без пароля ( не похоже на случайную строку ) мы не сможем создать пользователя в Джанго.
Подключение Facebook предоставляет вам информацию о текущем аутентифицированном пользователе. Но для поддержания декоратора login_required или пользователя request.user вам все равно нужно, чтобы они вошли в систему с помощью Django.
Вот где приходит бэкэнд аутентификации.
from django.contrib.auth.backends import ModelBackend
from peeldb.models import User
class PasswordlessAuthBackend(ModelBackend):
"""Log in to Django without providing a password.
"""
def authenticate(self, username=None):
try:
return User.objects.get(username=username)
except User.DoesNotExist:
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
В settings.py добавить
AUTHENTICATION_BACKENDS += (
# ... your other backends
'social.auth_backend.PasswordlessAuthBackend',
# path to your custom authentication file
# appname.filename.classname
)
Затем, чтобы аутентифицировать зарегистрированного пользователя, мы можем переопределить функцию аутентификации без пароля в наших представлениях, как
user = authenticate(username={{user_email}})
login(request, user)
Статья взята с сайта: micropyramid.com