Функция authenticate
Функция authenticate применяется для проверки переданных учетных данных (обычно имя пользователя и пароль) и возвращает объект пользователя, если аутентификация прошла успешно, или None в противном случае. Функция принимает аргументы в виде именованных параметров, где ключи - это имена полей модели пользователя, а значения - соответствующие данные. Обычно используются аргументы username и password, но можно использовать и другие поля в зависимости от настроек аутентификации. Функция не привязана к конкретной модели, она использует все зарегистрированные бэкенды аутентификации для проверки учетных данных.
Синтаксис
from django.contrib.auth import authenticate
authenticate(**credentials)
Пример
Давайте попробуем аутентифицировать пользователя с именем 'john' и паролем 'secret123':
from 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")
Результат выполнения кода при успешной аутентификации:
"User authenticated successfully"
"john"
Результат выполнения кода при неуспешной аутентификации:
"Invalid credentials"
Пример
Аутентификация с использованием дополнительных аргументов, например, электронной почты вместо имени пользователя:
from 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")
Результат выполнения кода при успешной аутентификации:
"Welcome back, John Doe"
Пример
Аутентификация с последующей проверкой активности пользователя перед входом в систему:
from 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")
Результат выполнения кода для активного пользователя:
"Login allowed"
Результат выполнения кода для неактивного пользователя:
"Account is deactivated"
Смотрите также
-
функция
login,
которая выполняет вход пользователя в систему -
функция
logout,
которая выполняет выход пользователя из системы -
декоратор
login_required,
который требует аутентификации для доступа к представлению -
декоратор
permission_required,
который требует определенных разрешений для доступа