public async Task <IActionResult> UpdatePassword(UpdatePasswordParameter data) { var nameId = HttpContext.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value; if (string.IsNullOrEmpty(nameId)) { return(Unauthorized()); } var userId = Convert.ToInt32(nameId); var user = await auth.GetUser(userId); if (user == null) { return(NotFound()); } try { await auth.UpdatePassword(user, data); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task UpdatePassword(User user, UpdatePasswordParameter model) { if (!VerifyPasswordHash(model.Oldpass, user.PasswordHash, user.PasswordSalt)) { throw new Exception("Password not match"); } CreatePasswordHash(model.Newpass, out byte[] passwordHash, out byte[] passwordSalt); user.PasswordHash = passwordHash; user.PasswordSalt = passwordSalt; await context.SaveChangesAsync(); }