public async Task <IActionResult> GeneratePasswordResetToken(string email) { if (string.IsNullOrWhiteSpace(email)) { return(BadRequest("Can not request password reset for invalid email")); } var user = await accountBusiness.FindUserAsync(email); if (user is null) { return(BadRequest("Can not request password reset.")); } var token = await accountBusiness.GeneratePasswordResetTokenAsync(user); var encodedToken = HttpUtility.UrlEncode(token); // send via email await _googleMailService.SendPasswordResetEmailAsync(email, user, encodedToken); return(Ok()); }