РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
546 of 818 menu

Метод check_password

Метод check_password применяется к экземпляру модели User и выполняет проверку соответствия переданного пароля хешированному паролю, хранящемуся в базе данных. Метод возвращает булево значение: True, если пароль верный, и False в противном случае. Этот метод автоматически обрабатывает различные алгоритмы хеширования, поддерживаемые Django, и учитывает соль пароля.

Метод принимает один обязательный параметр - проверяемый пароль в виде строки, и один необязательный параметр, позволяющий задать хеш-значение для проверки. В большинстве случаев используется только первый параметр, поскольку хеш берется из атрибута password текущего пользователя.

Синтаксис

user.check_password(raw_password)

Параметры

⁅list⁆ ⁅item⁆ ⁅b⁆raw_password⁅/b⁆ - строка, содержащая пароль в открытом виде, который необходимо проверить. ⁅/item⁆ ⁅item⁆ ⁅b⁆setter⁅/b⁆ (необязательный) - вызываемый объект, который будет использоваться для обновления хеша пароля, если текущий алгоритм устарел. ⁅/item⁆ ⁅/list⁆

Пример . Проверка пароля

Давайте проверим пароль для существующего пользователя:

from django.contrib.auth.models import User # Получаем пользователя из базы данных user = User.objects.get(username='john_doe') # Проверяем пароль is_correct = user.check_password('my_secret_password') if is_correct: print('Password is correct') else: print('Password is incorrect')

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

"Password is correct"

Пример . С неверным паролем

Проверим, что происходит при вводе неправильного пароля:

from django.contrib.auth.models import User user = User.objects.get(username='john_doe') # Проверяем неверный пароль is_correct = user.check_password('wrong_password') if is_correct: print('Access granted') else: print('Access denied')

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

"Access denied"

Пример . В представлении

Используем метод для аутентификации пользователя во views:

from django.contrib.auth.models import User from django.shortcuts import render, redirect from django.contrib.auth import login def login_view(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') try: user = User.objects.get(username=username) if user.check_password(password): login(request, user) return redirect('dashboard') else: error = 'Invalid password' except User.DoesNotExist: error = 'User not found' return render(request, 'login.html', {'error': error}) return render(request, 'login.html')

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

  • метод set_password,
    который устанавливает новый хешированный пароль пользователю
  • метод has_perm,
    который проверяет наличие определенного разрешения у пользователя
  • функция authenticate,
    которая выполняет полную проверку учетных данных пользователя
  • функция login,
    которая выполняет вход пользователя в систему
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить