public async Task <ActionResult> RecoverPassword([FromBody] RecoverPasswordDto dto) { var user = await _authRepository.ValidateUser(dto.Email); if (user == null) { ModelState.AddModelError(string.Empty, "El correo electrónico no corresponde a un usuario registrado.."); return(NotFound(ModelState)); } await _authRepository.SendMailRecoverPassword(user); return(Ok()); }
public async Task <IActionResult> RecoverPassword(RecoverPasswordDto recoverPasswordDto) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = await _accountService.FindByEmailAsync(recoverPasswordDto.Email); if (user == null) { return(NotFound()); } var token = await _accountService.GeneratePasswordResetTokenAsync(user); var callback = Url.PageLink("/ResetPassword", values: new { token, email = user.Email }, protocol: Request.Scheme); await _accountService.SendRecoverPasswordMailAsync(recoverPasswordDto, callback); return(Ok()); }
public async Task SendRecoverPasswordMailAsync(RecoverPasswordDto recoverPasswordDto, string url) { var message = new Message(new string[] { recoverPasswordDto.Email }, "Password Recovery", url); await _emailSender.SendEmailAsync(message); }