Пользовательская аутентификация без пароля в Django

Бэкэндс аутентификации позволяет изменить метод проверки учетных данных ваших пользователей.

Для веб-сервисов, то есть аутентификации 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

Добавить комментарий