public TokenModel NewPassword(ResetPaswordModel model) { var user = _unitOfWork.Repository <UserEntity>().Set.FirstOrDefault(x => _au.Id == x.Id); if (user != null) { var salt = _cryptoContext.GenerateSaltAsBase64(); var password = Convert.ToBase64String(_cryptoContext.DeriveKey(model.Password, salt)); user.Salt = salt; user.Password = password; return(_authTokenProvider.GetToken(user)); } return(null); }
public TokenModel ResetPasword(ResetPaswordModel model) { var token = _unitOfWork.Repository <ForgotPaswordTokenEntity>().Include(x => x.User).FirstOrDefault(x => x.Code == model.Code && !x.Used); if (token != null) { var salt = _cryptoContext.GenerateSaltAsBase64(); var password = Convert.ToBase64String(_cryptoContext.DeriveKey(model.Password, salt)); token.User.Salt = salt; token.User.Password = password; token.Used = true; _unitOfWork.Repository <UserEntity>().Update(token.User); _unitOfWork.Repository <ForgotPaswordTokenEntity>().Update(token); return(_authTokenProvider.GetToken(token.User)); } return(null); }
public async Task <IActionResult> ResetPassword(ResetPaswordModel model) { if (ModelState.IsValid) { var user = await this.userManager.FindByEmailAsync(model.Email); if (user != null) { var result = await this.userManager.ResetPasswordAsync(user, model.Token, model.Password); if (!result.Succeeded) { foreach (var erro in result.Errors) { ModelState.AddModelError("", erro.Description); } return(View()); } return(View("Success")); } ModelState.AddModelError("", "Invalid Request"); } return(View()); }
public async Task <IActionResult> NewPassword([FromBody] ResetPaswordModel model) { var token = _forgotPaswordService.NewPassword(model); return(token != null?Ok(token) : (IActionResult)BadRequest()); }