示例#1
0
        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" }));
        }