public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordInputDto model) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.Select(x => x.Errors.FirstOrDefault().ErrorMessage))); } var result = await _authService.ForgotPassword(model); if (result.Succeeded) { return(Ok()); } return(BadRequest(result.Errors.Select(x => x.Description))); }
public async Task <IdentityResult> ForgotPassword(ForgotPasswordInputDto model) { var user = await _userManager.FindByEmailAsync(model.Email); if (user == null) { return(IdentityResult.Failed(new IdentityError[] { new IdentityError() { Code = "User", Description = "Not Found User" } })); } var code = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = $"{_client.Url}{_client.ResetPasswordPath}?uid={user.Id}&code={System.Net.WebUtility.UrlEncode(code)}"; await _emailService.SendPasswordResetAsync(model.Email, callbackUrl); return(IdentityResult.Success); }