public void AcquireEmailConfirmationToken_ForInvalidInput_ReturnsNull() { var parser = new JwtParser(); AcquireTokenModel tokenModel = parser.AcquireEmailConfirmationToken(null, 0); Assert.Null(tokenModel); }
public void AcquireEmailConfirmationToken_ForValidInput_ReturnsCorrectToken() { var parser = new JwtParser(); AcquireTokenModel tokenModel = parser.AcquireEmailConfirmationToken("*****@*****.**", 1); Assert.NotNull(tokenModel.Token); }
public void AcquireEmailConfirmationToken_VerifyForTokenParametersData() { var parser = new JwtParser(); AcquireTokenModel tokenModel = parser.AcquireEmailConfirmationToken("*****@*****.**", 1); var handler = new JwtSecurityTokenHandler(); var param = parser.GetParameters(); JwtSecurityToken readToken = handler.ReadJwtToken(tokenModel.Token); var iss = parser.GetClaim(readToken, "iss"); var email = parser.GetClaim(readToken, "email"); var userId = parser.GetClaim(readToken, "userId"); Assert.Equal(param.ValidIssuer, iss); Assert.Equal("*****@*****.**", email); Assert.Equal("1", userId); }
public IActionResult ResendConfirmationEmail(ResendEmailConfirmationViewModel model) { var user = getUserDetails.Invoke(model.Email); if (user == null) { Alert.Danger("Something went wrong"); return(View()); } if (user.EmailConfirmedOn != null) { Alert.Danger("Email already confirmed"); return(View()); } var parser = new JwtParser(); var confirmationToken = parser.AcquireEmailConfirmationToken(model.Email, user.Id).Token; var callbackUrl = Url.Action("ConfirmEmail", "Auth", new { token = confirmationToken }, Request.Scheme); emailService.SendEmailAsync(model.Email, "Confirm your account", callbackUrl).ConfigureAwait(false); Alert.Success("Check your inbox"); return(View()); }
public IActionResult Register(RegisterViewModel model) { var userModel = new UserModel() { Email = model.Email, Password = model.Password, Name = model.Name }; var userAddAction = addNewUser.Invoke(userModel); if (userAddAction == 0) { Alert.Danger("User Already exists"); return(View()); } var parser = new JwtParser(); var confirmationToken = parser.AcquireEmailConfirmationToken(model.Email, userAddAction).Token; var callbackUrl = Url.Action("ConfirmEmail", "Auth", new { token = confirmationToken }, Request.Scheme); var emailConfirmView = RenderViewToString("ConfirmEmail", "", callbackUrl); emailService.SendEmailAsync(model.Email, "Confirm your account", emailConfirmView).ConfigureAwait(false); Alert.Success("Confirmation email has been sent to your email address"); return(RedirectToAction("Login", "Auth")); }