Closed hemvall closed 11 months ago
using BCrypt.Net;
static string HashPassword(string password) { return BCrypt.Net.BCrypt.HashPassword(password); }
static bool VerifyPassword(string password, string hashedPassword) { return BCrypt.Net.BCrypt.Verify(password, hashedPassword); }
app.MapPost("/auth/login", ([FromBody] AddUserRequest credentials, [FromServices] ILanguageRepository userRepository) => { User user = userRepository.IsUserAuthenticated(credentials.Mail, credentials.PasswordHash); string hashedPassword = HashPassword(credentials.PasswordHash); return VerifyPassword(credentials.PasswordHash.ToString(), user.PasswordHash) && user != null ? Results.Ok(user) : Results.Unauthorized(); });
public User IsUserAuthenticated(string mail, string passwordHash)
{
User user= _context.Users.Where(x => x.Mail == mail).Single();
if (user != null)
{
user.LastConnection = DateTime.Now;
_context.SaveChanges();
return user;
}
else
{
return null;
}
}
app.MapPost("/user/add", ([FromBody] AddUserRequest user, [FromServices] ILanguageRepository repository) => { int userId = repository.AddUser(new Mr.Octopus.Domain.Models.User { RoleId = user.RoleId, Name = user.Name, LastName = user.LastName, Username = user.Name[0].ToString().ToLower() + user.LastName.ToLower(), Initials = user.Name[0].ToString().ToUpper() + user.LastName[0].ToString().ToString(), Icon = "", Mail = user.Mail, PasswordHash = HashPassword(user.PasswordHash), IsAllowed = true, LastConnection = DateTime.Now }); return Results.Created($"/user/{userId}", userId); });