public async Task <IActionResult> SendPasswordResetLink(UserEmailAddress email) { var user = await _userManager.FindByEmailAsync(email.Email); if (user == null) { return(Ok()); } var token = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = $"http://localhost:4200/change-password/?token={token}&id={user.Id}"; await _emailSender.SendEmailAsync(email.Email, "Password Reset Request", $"<p>Hi there {user.UserName},</p><p>Click below to reset your password</p><a href='{callbackUrl}'>Click here</a><hr><p><i>Boardology</i></p>"); return(Ok()); }
public void Handle(AddEmailAddressCommand message) { var user = db.Users.WhereUserLoginIs(message.UserName).Single(); var emailAddress = new UserEmailAddress { Value = message.EmailAddress }; var code = VerificationCodeManager.GenerateCode(); emailAddress.VerificationToken = VerificationCodeManager.GetHash(emailAddress.Value + code); user.EmailAddresses.Add(emailAddress); db.SaveChanges(); var urlCommand = new VerifyEmailAddressCommand { Id = emailAddress.Id, VerificationCode = code }; var url = message.VerificationUrlBuilder(urlCommand); mailer.EmailVerificationCode(emailAddress.Value, user.Login, url); }
protected override async Task Handle(AddEmailAddressCommand message, CancellationToken cancellationToken) { var user = await db.Users.WhereUserLoginIs(message.UserName).SingleAsync(); var emailAddress = new UserEmailAddress { Value = message.EmailAddress }; var code = VerificationCodeManager.GenerateCode(); emailAddress.VerificationToken = VerificationCodeManager.GetHash(emailAddress.Value + code); user.EmailAddresses.Add(emailAddress); await db.SaveChangesAsync(); var urlCommand = new VerifyEmailAddressCommand { Id = emailAddress.Id, VerificationCode = code }; var url = message.VerificationUrlBuilder(urlCommand); mailer.EmailVerificationCode(emailAddress.Value, user.Login, url); }