Beispiel #1
0
        public async Task ForgotPassword(ForgotPasswordAccountViewModel model)
        {
            ApplicationUser user = await _userManager.FindByEmailAsync(model.Email.ToUpper());

            Require.Objects.NotNull <NotFoundException>(user, $"User not found");

            var isEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);

            if (!isEmailConfirmed)
            {
                throw new BadRequestException("Email is not confirmed.");
            }

            var code = await _userManager.GeneratePasswordResetTokenAsync(user);

            var url = $"{_appSettings.FrontEndUrl}account/reset-password?userId={HttpUtility.UrlEncode(user.Id)}&code={HttpUtility.UrlEncode(code)}";

            var bodyBuilder = new StringBuilder();
            var body        = bodyBuilder.AppendLine($"Hi, {user.FirstName}! ")
                              .Append($"Please click on <a href='{url}'>link</a> to reset passowrd.")
                              .ToString();

            _emailSender.SendMail(user.Email, "Reset Password", body);
        }
Beispiel #2
0
        public async Task <IActionResult> ForgotPassword([FromBody] ForgotPasswordAccountViewModel model)
        {
            await _accountService.ForgotPassword(model);

            return(Ok());
        }