Example #1
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var user = await _userManager.FindByEmailAsync(model.Email);

            if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
            {
                // Don't reveal that the user does not exist or is not confirmed
                return(BadRequest());
            }

            // For more information on how to enable account confirmation and password reset please
            // visit https://go.microsoft.com/fwlink/?LinkID=532713

            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            var callbackUrl = Url.ApiResetPasswordCallbackLink(user.Id, code, Request.Scheme, model.Host);
            //await _emailSender.SendEmailAsync(model.Email, "Reset Password",
            //   $"Please reset your password by clicking here: <a href='{callbackUrl}'>link</a>");

            EmailSender emailSender = new EmailSender();
            await emailSender.SendEmailAsync(model.Email, _localizer["PasswordReset"], $"{_localizer["PasswordPleaseReset"]}: <a href='{callbackUrl}'>link</a>");

            return(Ok());
        }