public async Task <PasswordResetEnum> ResetPassword(string email, string countryCode) { PasswordReset resetUserPassword = new PasswordReset { Email = email, CountryCode = countryCode, DeviceId = GlobalAccess.DeviceId }; var result = await authenticationService.ResetPassword(resetUserPassword); if (!result.IsSuccess) { switch (result.Content) { case Constants.DEVICE_NOT_MATCHED: return(PasswordResetEnum.DeviceIdNotMatched); case Constants.EMAIL_NOT_EXIST: return(PasswordResetEnum.EmailNotExist); } } else { PasswordResetResponse res = result.DeserializeObject <PasswordResetResponse>(); if (res.Status) { return(PasswordResetEnum.ResetSuccess); } } return(PasswordResetEnum.ResetFailure); }
public async Task <PasswordResetResponse> PasswordReset(PasswordResetRequest request) { var response = new PasswordResetResponse(); var user = await _userRepository.Select(x => x.PasswordResetToken == request.Token && x.Email == request.Email); if (user.IsExist() && user.IsActive && user.PasswordResetRequestedAt.HasValue && user.PasswordResetRequestedAt.Value.AddDays(1) > DateTime.UtcNow) { user.PasswordHash = _cryptoHelper.Hash(request.Password, user.ObfuscationSalt); user.LoginTryCount = 0; user.PasswordResetRequestedAt = null; user.PasswordResetToken = null; var result = await _userRepository.Update(user.Id, user); if (result) { //todo:send email response.Status = ResponseStatus.Success; return(response); } } response.SetFailed(); return(response); }
public PasswordResetResponse PasswordReset( PasswordResetRequest request) { Logger.Debug("Password Reset Request Received: {0}", JsonConvert.SerializeObject(request, Formatting.Indented)); PasswordResetResponse response; //use in built data annotations to ensure model has binded correctly if (!ModelState.IsValid) { var errors = ModelState.Keys.SelectMany(key => ModelState[key].Errors.Select(x => x.ErrorMessage)); response = new PasswordResetResponse { Success = false, Message = "Form has validation errors", Errors = errors.ToArray() }; } else { //send request to the user service and return //the response (success or fail) response = UserService.ResetPassword(request); } Logger.Debug("Sent Password Reset Response: {0}", JsonConvert.SerializeObject(response, Formatting.Indented)); return(response); }
//Called when a password reset link is clicked. public object Get(PasswordResetRequest request) { //Display Change Password Screen var resetrequest = Cache.Get <PasswordResetRequest>(request.Id); var response = new PasswordResetResponse(); response.Valid = !(resetrequest == null); response.Id = request.Id; return(response); }
public PasswordResetResponse Put(PasswordResetRequest request) { // VALIDATE //Changes the password var resetrequest = Cache.Get <PasswordResetRequest>(request.Id); var response = new PasswordResetResponse(); if (resetrequest == null) { response.Valid = false; return(response); } if (request.Email != resetrequest.Email) { response.Valid = false; return(response); } else if (resetrequest == null) { response.Valid = false; return(response); } else { response.Valid = true; } var existingUser = AuthRepo.GetUserAuthByUserName(resetrequest.Email); if (existingUser == null) { return(new PasswordResetResponse() { Valid = false }); } AuthRepo.UpdateUserAuth(existingUser, existingUser, request.NewPassword); response.PasswordChanged = true; Cache.Remove(resetrequest.Id); return(response); }
public void ResetPasswordShouldBeLoginnable() { string userName = MethodBase.GetCurrentMethod().Name; string email = "*****@*****.**"; UserTestTools.SignUp(userName, email); User user = User.GetByEmail(email); Expect.AreEqual(0, user.PasswordResetsByUserId.Count); UserManager userMgr = UserTestTools.CreateTestUserManager("Stickerize"); userMgr.HttpContext = A.Fake <IHttpContext>(); userMgr.HttpContext.Request = new TestRequest(); string password = ServiceProxySystem.GenerateId(); ForgotPasswordResponse forgot = userMgr.ForgotPassword(email); PasswordResetResponse reset = userMgr.ResetPassword(password.Sha1(), (string)forgot.Data); LoginResponse login = userMgr.Login(user.UserName, password.Sha1()); Expect.IsTrue(login.Success, "Login failed"); }