public async Task Change_Password() { var userRegisterModel = new UserRegisterModel { Age = 21, Email = "*****@*****.**", Name = "test", Password = "******", Username = "******" }; var response = await HttpClient.PostAsJsonAsync($"api/v1/auth/register", userRegisterModel); response.IsSuccessStatusCode.Should().BeTrue(); var userNewPasswordModel = new UserNewPasswordModel { Email = userRegisterModel.Email, NewPassword = "******", }; response = await HttpClient.PostAsJsonAsync($"api/v1/auth/recover", userNewPasswordModel); response.IsSuccessStatusCode.Should().BeTrue(); var loginModel = new AuthenticationRequest { Email = userRegisterModel.Email, Password = userNewPasswordModel.NewPassword }; response = await HttpClient.PostAsJsonAsync($"api/v1/auth/login", loginModel); response.IsSuccessStatusCode.Should().BeTrue(); }
public async Task <IActionResult> ForgotPassword([FromBody] UserNewPasswordModel model) { var result = await _authenticationService.ForgotPassword(model); if (result == null) { return(BadRequest("User doesn't exists or the new password doesn't meet the requirements")); } return(Ok(result)); }
public async Task <UserModel> ForgotPassword(UserNewPasswordModel userNewPasswordModel) { var user = await _userRepository.GetByEmail(userNewPasswordModel.Email); var regexPassword = Regex.Match(userNewPasswordModel.NewPassword, "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,15}$"); if (user == null || !regexPassword.Success) { return(null); } user.Password = _passwordHasher.CreateHash(userNewPasswordModel.NewPassword); _userRepository.Update(user); await _userRepository.SaveChanges(); return(_mapper.Map <UserModel>(user)); }