// Da de alta a un usuario a la Base de Datos. public void SignUp(UserPostDTO newUser) { User dbUser = newUser.GetDataBaseObject(); dbUser.Userid = Guid.NewGuid(); dbUser.Salt = CryptoSC.GenerateSalt();; dbUser.Hashpassword = CryptoSC.GetHashedPassword(newUser.Password, dbUser.Salt); dbContext.Users.Add(dbUser); dbContext.SaveChanges(); }
// Recibe un usuario y una contraseña. Si la contraseña hasheada coincide con la contraseña almacenada // en la Base de Datos devuelve un Token JWT. public string Login(string username, string password) { // Busca al usuario en la Base de Datos. User dbUser = GetAllUsers().FirstOrDefault(user => user.Username == username); if (dbUser == null) { throw new KeyNotFoundException(); } // Compara las contraseñas. bool passwordsMatch = CryptoSC.ComparePasswords(dbUser.Hashpassword, password, dbUser.Salt); // Si las contraseñas coinciden genera un Token JWT y lo devuelve. return(passwordsMatch ? CryptoSC.GenerateToken(dbUser) : null); }