public IActionResult ChangePassword([FromBody] ChangePasswordPayload payload) { String[] authorization = Request.Headers["authorization"].ToString().Split(" "); String token = authorization[1]; String userId = ((JwtSecurityToken) new JwtSecurityTokenHandler().ReadToken(token)).Claims.First(claim => claim.Type == "id").Value; try { var selectedUser = _db.Users.Find(Int32.Parse(userId)); if (BC.Verify(payload.Password, selectedUser.PasswordHash)) { selectedUser.PasswordHash = BC.HashPassword(payload.NewPassword); _db.SaveChanges(); return(Ok(new { message = true })); } else { return(StatusCode(401, "Wrong password!")); } } catch (Exception ex) { return(StatusCode(500, $"Internal server error: {ex}")); } }
public void ChangePassword(string userName, string oldPassword, string newPassword) { var payload = new ChangePasswordPayload { OldPassword = oldPassword, NewPassword = newPassword }; IRestResponse response = Request.ExecuteJsonRequest(string.Format("/users/{0}/password", userName), Method.POST, payload); ValidateResponse(response); }