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);
        }
Example #4
0
        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());
        }
Example #5
0
        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"));
        }