From c0ee89f175b562c64481515b5da26c4972237974 Mon Sep 17 00:00:00 2001 From: proDream Date: Sat, 11 Jan 2025 02:30:55 +0400 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=20=D0=B0=D1=83=D1=82=D0=B5=D0=BD=D1=82=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Создан новый модуль `handlers.py` для управления аутентификацией. - Добавлена класс `AuthHandler` с методом для генерации хэшей паролей. - Использование библиотеки `passlib` для обеспечения безопасного хранения паролей. --- lkeep/apps/auth/handlers.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 lkeep/apps/auth/handlers.py diff --git a/lkeep/apps/auth/handlers.py b/lkeep/apps/auth/handlers.py new file mode 100644 index 0000000..847c718 --- /dev/null +++ b/lkeep/apps/auth/handlers.py @@ -0,0 +1,28 @@ +from passlib.context import CryptContext + +from lkeep.core.settings import settings + + +class AuthHandler: + """ + Обрабатывает аутентификационные запросы и обеспечивает безопасность пользовательских данных. + + :ivar secret: Секретный ключ, используемый для дополнительной безопасности при генерации хешей. + :type secret: str + :ivar pwd_context: Контекст для использования bcrypt-алгоритма хеширования паролей. + :type pwd_context: CryptContext + """ + + secret = settings.secret_key.get_secret_value() + pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + + async def get_password_hash(self, password: str) -> str: + """ + Генерирует хэш-значение пароля для безопасного сохранения и сравнения. + + :param password: Пароль пользователя, который нужно зашифровать. + :type password: str + :returns: Хешированный вариант пароля. + :rtype: str + """ + return self.pwd_context.hash(password)