Функция authenticate

Функция authenticate применяется для проверки переданных учетных данных (обычно имя пользователя и пароль) и возвращает объект пользователя, если аутентификация прошла успешно, или None в противном случае. Функция принимает аргументы в виде именованных параметров, где ключи - это имена полей модели пользователя, а значения - соответствующие данные. Обычно используются аргументы username и password, но можно использовать и другие поля в зависимости от настроек аутентификации. Функция не привязана к конкретной модели, она использует все зарегистрированные бэкенды аутентификации для проверки учетных данных.

Синтаксис

pythonfrom django.contrib.auth import authenticate

authenticate(**credentials)

Пример

Давайте попробуем аутентифицировать пользователя с именем 'john' и паролем 'secret123':

pythonfrom django.contrib.auth import authenticate

user = authenticate(username='john', password='secret123')
if user is not None:
  print("User authenticated successfully")
  print(user.username)
else:
  print("Invalid credentials")

Результат выполнения кода при успешной аутентификации:

python"User authenticated successfully"
"john"

Результат выполнения кода при неуспешной аутентификации:

python"Invalid credentials"

Пример

Аутентификация с использованием дополнительных аргументов, например, электронной почты вместо имени пользователя:

pythonfrom django.contrib.auth import authenticate

user = authenticate(email='john@example.com', password='secret123')
if user is not None:
  print(f"Welcome back, {user.get_full_name()}")
else:
  print("Authentication failed")

Результат выполнения кода при успешной аутентификации:

python"Welcome back, John Doe"

Пример

Аутентификация с последующей проверкой активности пользователя перед входом в систему:

pythonfrom django.contrib.auth import authenticate

user = authenticate(username='jane_doe', password='securepass')
if user is not None:
  if user.is_active:
    print("Login allowed")
  else:
    print("Account is deactivated")
else:
  print("Invalid credentials")

Результат выполнения кода для активного пользователя:

python"Login allowed"

Результат выполнения кода для неактивного пользователя:

python"Account is deactivated"

Смотрите также

  • функция login,
    которая выполняет вход пользователя в систему
  • функция logout,
    которая выполняет выход пользователя из системы
  • декоратор login_required,
    который требует аутентификации для доступа к представлению
  • декоратор permission_required,
    который требует определенных разрешений для доступа