public async Task <IActionResult> ResetPassword([FromQuery] string email, [FromQuery] string token) { var user = await _userManager.FindByEmailAsync(email); if (user == null) { throw new BadRequestException(); } var authorizeResult = await _authorizationService.AuthorizeAsync(User, user, new AccountEditRequirement()); if (!authorizeResult.Succeeded) { throw new UnauthorizedException(); } var newPassword = Guid.NewGuid().ToString("n").Substring(0, 8); var result = await _userManager.ResetPasswordAsync(user, token.Replace(" ", "+"), newPassword); if (!result.Succeeded) { throw new BadRequestException(); } string body = "Password baru anda: " + newPassword; MailController mc = new MailController(_iconfiguration, _mailLogger); mc.SendEmail("New Password", body, new MailAddress(user.Email, user.UserName)); return(Ok(new RequestResult() { Message = "Success" })); }
public async Task <IActionResult> RecoverPassword([FromBody] LoginViewModel model) { var user = await _userManager.FindByEmailAsync(model.Email); var authorizeResult = await _authorizationService.AuthorizeAsync(User, user, new AccountEditRequirement()); if (!authorizeResult.Succeeded) { throw new UnauthorizedException(); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); string resetLink = string.Format("{0}://{1}/account/password/reset?email={2}&token={3}", Request.Scheme, Request.Host, System.Net.WebUtility.UrlEncode(user.Email), System.Net.WebUtility.UrlEncode(token)); string body = string.Format("Klik tautan di bawah ini untuk mereset password anda. </br><a href=\"{0}\">Reset Password</a>", resetLink); MailController mc = new MailController(_iconfiguration, _mailLogger); mc.SendEmail("Reset Password", body, new MailAddress(user.Email, user.UserName)); return(Ok(new RequestResult() { Message = "Success" })); }