public async Task ForgotPasswordAsync(ForgotPasswordRequestDto request, string origin) { await _forgotPasswordRequestValidator.ValidateAndThrowAsync(request); var account = _dbContext.Accounts.SingleOrDefault(x => x.Email == request.Email); if (account == null) { return; } // create reset token that expires after 1 day account.ResetToken = RandomTokenString(); account.ResetTokenExpires = DateTime.UtcNow.AddDays(1); _dbContext.Accounts.Update(account); await _dbContext.SaveChangesAsync(); // send email SendPasswordResetEmail(account, origin); }
public async Task <IActionResult> ForgotPasswordAsync(ForgotPasswordRequestDto request) { await _accountService.ForgotPasswordAsync(request, Request.Headers["origin"]); return(Ok(new { message = "Please check your email for password reset instructions" })); }