public async Task <IActionResult> ChangePassword([FromBody] PasswordPayload passwordPayload) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var regex = new Regex("(?=.*?[0-9])(?=.*?[A-Za-z]).+"); if (!regex.IsMatch(passwordPayload.NewPassword)) { return(BadRequest("Password must contain at least 1 character and 1 number")); } try { await _userManager.ChangePasswordAsync(User.Claims.FirstOrDefault(x => x.Type.Equals("login"))?.Value, passwordPayload.OldPassword, passwordPayload.NewPassword); return(NoContent()); } catch (ArgumentException e) { return(BadRequest(e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public async void ChangePassword(string password, string idToken) { PasswordPayload p = new PasswordPayload() { password = password, idToken = idToken }; string URL = "https://identitytoolkit.googleapis.com/v1/accounts:update?key=" + AuthKey; var res = await client.Post(URL, p); if (res.IsSuccessStatusCode) { Stream m = await res.Content.ReadAsStreamAsync(); Dictionary <string, object> data = await JsonSerializer.DeserializeAsync <Dictionary <string, object> >(m); } else { //todo } }