public void ShouldPassIfValidRequest() { var request = PasswordResetEmailRequest.Example(); var result = _validator.Validate(request); Assert.True(result.IsValid); }
public void ShouldFailIfLinkIsInvalid() { var request = PasswordResetEmailRequest.Example(); request.Link = "test.com"; var result = _validator.Validate(request); Assert.False(result.IsValid); }
public void ShouldFailIfEmailIsNull() { var request = PasswordResetEmailRequest.Example(); request.Email = null; var result = _validator.Validate(request); Assert.False(result.IsValid); }
public void ShouldFailOnInvalidFirstName() { var request = PasswordResetEmailRequest.Example(); request.FirstName = ""; var result = _validator.Validate(request); Assert.False(result.IsValid); }
public async Task SendPasswordResetEmailAsync(PasswordResetEmailRequest request) { var claims = new[] { new Claim(ClaimTypes.Email, request.Email) }; var ConfirmToken = jwtAuthManager.GeneratePasswordResetToken(claims, DateTime.Now); string Url = $"{configuration["appUrl"]}/api/account/passwordreset?UserEmail={request.Email}&token={ConfirmToken}"; await emailSender.SendEmailAsync(request.Email, "Reset Password - Maxshoes", "<h1>Hello from Max shoes</h1>" + $"<p> to reset your password: <a href='{Url}'>Click here!</a></p>"); }
public async Task <ActionResult> SendPasswordResetEmail([FromBody] PasswordResetEmailRequest request) { await _authenticationService.SendPasswordResetEmailAsync(request); return(Ok()); }
public async Task <IActionResult> PasswordResetEmail([FromBody] PasswordResetEmailRequest request) { if (request == null) { return(BadRequest( new AuthFailedResponse { Errors = new List <string>() { "Empty Request." } } )); } DragonflyUser user; if (HttpContext.User.Identity.IsAuthenticated) { var userId = HttpContext.GetUserId(); user = await _userService.GetUserByIdAsync(userId).ConfigureAwait(false); if (user != null && ((!string.IsNullOrEmpty(request.Email) && user.Email != request.Email) || (!string.IsNullOrEmpty(request.UserName) && user.UserName != request.UserName))) { return(BadRequest( new AuthFailedResponse { Errors = new List <string>() { "Mismatched user data." } } )); } } else if (!string.IsNullOrEmpty(request.UserName)) { user = await _userService.GetUserByUserNameAsync(request.UserName).ConfigureAwait(false); } else if (!string.IsNullOrEmpty(request.Email)) { user = await _userService.GetUserByEmailAsync(request.Email).ConfigureAwait(false); } else { return(BadRequest( new AuthFailedResponse { Errors = new List <string>() { "No user data included." } } )); } if (user == null) { return(BadRequest( new AuthFailedResponse { Errors = new List <string>() { "Could not find user." } } )); } var sentResult = await _identityService.ResetPasswordEmailAsync(user).ConfigureAwait(false); if (!sentResult.Success) { return(BadRequest( new AuthFailedResponse { Errors = sentResult.Errors })); } return(Ok( new AuthenticationResult { Success = true })); }
public async Task <IActionResult> PasswordResetEmail([FromBody] PasswordResetEmailRequest request) { if (request == null) { return(BadRequest(new BaseResponse <string> { Errors = new List <string>() { "Empty Request." }, Success = false, })); } AppUser user; if (HttpContext.User.Identity.IsAuthenticated) { var userId = _userManager.GetUserId(HttpContext.User); user = await _userManager.FindByIdAsync(userId); if (user != null && ((!string.IsNullOrEmpty(request.Email) && user.Email != request.Email) || (!string.IsNullOrEmpty(request.UserName) && user.UserName != request.UserName))) { return(BadRequest(new BaseResponse <string> { Errors = new List <string>() { "Mismatched user data." }, Success = false, })); } } else if (!string.IsNullOrEmpty(request.UserName)) { user = await _userManager.FindByNameAsync(request.UserName); } else if (!string.IsNullOrEmpty(request.Email)) { user = await _userManager.FindByEmailAsync(request.Email); } else { return(BadRequest(new BaseResponse <string> { Errors = new List <string>() { "No user data included." }, Success = false, })); } if (user == null) { return(BadRequest(new BaseResponse <string> { Errors = new List <string>() { "Could not find user." }, Success = false, })); } var sentResult = await _accountService.ResetPasswordEmailAsync(user); if (!sentResult.Success) { return(BadRequest(new BaseResponse <string> { Errors = sentResult.Errors, Success = false, })); } return(Ok(new BaseResponse <string> { Success = true, })); }