public void SetToken_NeedRefresh() { ITokenPair tokenPair = GetToken(TestMsJwtProviderBase.CreateClaim(), TestMsJwtProviderBase.CreatePayload()); TokenManager refresher = CreateRefresher(TestConstants.AccessTokenLifetimeSeconds); refresher.SetToken(tokenPair); Assert.IsTrue(refresher.NeedRefreshToken()); }
public void CreateToken_NotBefore() { TokenClaim claim = TestMsJwtProviderBase.CreateClaim(); TestPayload payload = TestMsJwtProviderBase.CreatePayload(); claim.NotBefore = DateTimeOffset.UtcNow.AddSeconds(5); string token = GetProvider().CreateToken(claim, payload); MsJwtValidatorBase <TestPayload> validator = CreateValidator(TestConstants.Issuer, TestConstants.Audience); Assert.IsFalse(validator.ValidateToken(token, out ITokenClaim tokenClaim, out TestPayload tokenPayload, out TokenState state, out string errorMessage)); Assert.AreEqual(state, TokenState.NotBefore); }
public void CreateToken_NullPayload() { TokenClaim claim = TestMsJwtProviderBase.CreateClaim(); TestPayload payload = null; string token = GetProvider().CreateToken(claim, payload); MsJwtValidatorBase <TestPayload> validator = CreateValidator(TestConstants.Issuer, TestConstants.Audience); Assert.IsTrue(validator.ValidateToken(token, out ITokenClaim tokenClaim, out TestPayload tokenPayload, out TokenState state, out string errorMessage)); Assert.IsTrue(ValueEquals(claim, tokenClaim)); Assert.IsNull(tokenPayload); Assert.AreEqual(state, TokenState.Valid); }
/// <summary> /// /// </summary> private void CreateToken_InvalidAudience(bool validateAudience) { TokenClaim claim = TestMsJwtProviderBase.CreateClaim(); TestPayload payload = TestMsJwtProviderBase.CreatePayload(); string token = GetProvider().CreateToken(claim, payload); MsJwtValidatorBase <TestPayload> validator = CreateValidator(TestConstants.Issuer, validateAudience ? "thisAudience" : null); if (validateAudience) { Assert.IsFalse(validator.ValidateToken(token, out ITokenClaim tokenClaim, out TestPayload tokenPayload, out TokenState state, out string errorMessage)); Assert.AreEqual(state, TokenState.InvalidAudience); } else { Assert.IsTrue(validator.ValidateToken(token, out ITokenClaim tokenClaim, out TestPayload tokenPayload, out TokenState state, out string errorMessage)); Assert.AreEqual(state, TokenState.Valid); } }
public void RefreshToken() { ITokenPair tokenPair = GetToken(TestMsJwtProviderBase.CreateClaim(), TestMsJwtProviderBase.CreatePayload()); TokenManager refresher = CreateRefresher(TestConstants.AccessTokenLifetimeSeconds / 2); refresher.SetToken(tokenPair); Assert.IsFalse(refresher.NeedRefreshToken()); DateTimeOffset lastExpiration = refresher.GetTokenExpiration().Value; System.Threading.Thread.Sleep(1000); DateTimeOffset expectedExpiration = DateTimeOffset.UtcNow.AddSeconds(TestConstants.AccessTokenLifetimeSeconds); refresher.RefreshToken(); Assert.IsTrue(lastExpiration < refresher.GetTokenExpiration().Value); Assert.IsTrue(expectedExpiration <= refresher.GetTokenExpiration().Value); }