diff --git a/BusinessLogic/BusinessLogic.csproj b/BusinessLogic/BusinessLogic.csproj
index 8e23e43..c105ec7 100644
--- a/BusinessLogic/BusinessLogic.csproj
+++ b/BusinessLogic/BusinessLogic.csproj
@@ -6,7 +6,12 @@
enable
+
+
+
+
+
diff --git a/BusinessLogic/BusinessLogic/UserLogic.cs b/BusinessLogic/BusinessLogic/UserLogic.cs
index 73f8156..b028660 100644
--- a/BusinessLogic/BusinessLogic/UserLogic.cs
+++ b/BusinessLogic/BusinessLogic/UserLogic.cs
@@ -102,19 +102,21 @@ namespace BusinessLogic.BusinessLogic
return UserConverter.ToView(user);
}
- public UserViewModel Login(UserBindingModel model)
+ public UserViewModel Login(string email, string password)
{
- ArgumentNullException.ThrowIfNull(model);
-
- var user = _userStorage.GetElement(new() { Email = model.Email });
+ if (email is null)
+ {
+ throw new AccountException("Email is null");
+ }
+ var user = _userStorage.GetElement(new() { Email = email });
if (user is null)
{
throw new ElementNotFoundException();
}
// Проверяем пароль
- _validatePassword(model.Password);
- if (PasswordHasher.Verify(model.Password, user.PasswordHash))
+ _validatePassword(password);
+ if (!PasswordHasher.Verify(password, user.PasswordHash))
{
throw new AccountException("The passwords don't match.");
}
diff --git a/BusinessLogic/Tools/PasswordHasher.cs b/BusinessLogic/Tools/PasswordHasher.cs
index f73edca..f52c90f 100644
--- a/BusinessLogic/Tools/PasswordHasher.cs
+++ b/BusinessLogic/Tools/PasswordHasher.cs
@@ -16,11 +16,7 @@ namespace BusinessLogic.Tools
/// Хеш пароля
public static string Hash(string password)
{
- using (SHA256 sha256 = SHA256.Create())
- {
- byte[] bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(password));
- return Convert.ToBase64String(bytes);
- }
+ return BCrypt.Net.BCrypt.HashPassword(password);
}
///
@@ -31,8 +27,7 @@ namespace BusinessLogic.Tools
///
public static bool Verify(string password, string passHash)
{
- var hash = Hash(password);
- return hash == passHash;
+ return BCrypt.Net.BCrypt.Verify(password, passHash);
}
}
}
\ No newline at end of file