Example #1
0
        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));
        }
Example #3
0
        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));
        }