public async Task <PasswordResetValidateResponse> ValidatePasswordReset(PasswordResetValidateRequest request) { var response = new PasswordResetValidateResponse(); var user = await _userRepository.Select(x => x.PasswordResetToken == request.Token && x.Email == request.Email); if (user.IsExist() && user.PasswordResetRequestedAt.HasValue && user.PasswordResetRequestedAt.Value.AddDays(1) > DateTime.UtcNow) { response.Status = ResponseStatus.Success; return(response); } response.SetFailed(); return(response); }
public async Task <IActionResult> ResetPassword(string email, Guid token) { if (email.IsNotEmail() || token.IsEmptyGuid()) { return(RedirectToAccessDenied()); } var request = new PasswordResetValidateRequest(token, email); var response = await OrganizationService.ValidatePasswordReset(request); if (response.Status.IsNotSuccess) { return(RedirectToAccessDenied()); } var model = new ResetPasswordModel { Token = token, Email = email }; return(View(model)); }