Beispiel #1
0
        public async Task <ActionResult> ForgotPassword(ForgotPasswordModel model)
        {
            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user is null)
            {
                // Don't reveal that the user does not exist
                return(Ok());
            }

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            var uriBuilder = new UriBuilder(model.ReturnUrl);
            var query      = HttpUtility.ParseQueryString(uriBuilder.Query);

            query["email"]   = user.Email;
            query["token"]   = token;
            uriBuilder.Query = query.ToString();
            var callbackUrl = uriBuilder.ToString();

            await _sendGridService.SendAuthEmail(model.CompanySlug, user.Email, "Reset Password",
                                                 $"Please reset your password by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

            return(Ok());
        }