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 Verify_ForFreshToken_ReturnsOk() { var parser = new JwtParser(); AcquireTokenModel tokenModel = parser.AcquireToken("*****@*****.**", 1); VerifyResultModel result = parser.Verify(tokenModel.Token); Assert.Equal(true, result.IsValid); Assert.NotNull(result.ExpiryDate); }
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 void Verify_ForFreshToken_ReturnsCorrectExpiryDate() { var mockedDateTimeProvider = new Mock <IDateTimeProvider>(); var dateFormat = "yyyy-MM-dd HH:mm"; var dateNow = DateTime.UtcNow; // we are using mocked IDateTimeProvider to make sure we are refering to same "now" mockedDateTimeProvider.Setup(p => p.GetNow()).Returns(dateNow); var parser = new JwtParser(mockedDateTimeProvider.Object); var dateNowFutureString = dateNow.AddDays(parser.GetExpiredDays()).ToString(dateFormat); AcquireTokenModel tokenModel = parser.AcquireToken("*****@*****.**", 1); VerifyResultModel result = parser.Verify(tokenModel.Token); string expiryDateString = null; if (result.ExpiryDate != null) { expiryDateString = result.ExpiryDate.Value.ToString(dateFormat); } Assert.Equal(dateNowFutureString, expiryDateString); }
public AcquireTokenModel AcquireEmailConfirmationToken(string formEmail, int userId) { var handler = new JwtSecurityTokenHandler(); var credentials = new SigningCredentials(encodedSecretKey, SecurityAlgorithms.HmacSha256Signature); ClaimsIdentity identity; try { identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Email, formEmail), new Claim(ClaimIssuer, GetIssuerName()), new Claim(ClaimUserId, userId.ToString()), }); } catch (Exception) { return(null); } var tokenDescriptor = new SecurityTokenDescriptor() { Subject = identity, SigningCredentials = credentials, Expires = dateTimeProvider.GetNow().AddDays(GetExpiredDays()), }; var plainToken = handler.CreateToken(tokenDescriptor); // Encoded token var result = new AcquireTokenModel() { Token = handler.WriteToken(plainToken) }; return(result); }