public void ValidateTokenThrowsOnExpiredTokenInUTCTime() { var oldToken = new ValidatedJWTokenTestForgery( _sm, SecurityActionFactory.GetAll(), _ti, _cii, DateTime.UtcNow.AddMinutes((JWToken.AccessTokenExpirationMinutes + 1) * -1), true); var rawData = oldToken.RawTokenData; Assert.Throws <SecurityTokenExpiredException>(() => ValidatedJWToken.CreateWithValidation(rawData, _secKey)); }
public void CreateTokenSetsExpirationInUTCTime() { var timezones = TimeZoneInfo.GetSystemTimeZones(); var utcNow = DateTime.UtcNow; // Strip fractional seconds off utcNow utcNow = utcNow.AddTicks(-(utcNow.Ticks % TimeSpan.TicksPerSecond)); var tokenHandler = new JwtSecurityTokenHandler(); var localTZ = TimeZoneInfo.Local; var localtimeNow = TimeZoneInfo.ConvertTimeFromUtc(utcNow, localTZ); var token = new ValidatedJWTokenTestForgery(_sm, SecurityActionFactory.GetAll(), _ti, _cii, localtimeNow, true); var expClaim = (tokenHandler.ReadToken(token.RawTokenData) as JwtSecurityToken); Assert.AreEqual(utcNow.AddMinutes(JWToken.AccessTokenExpirationMinutes), expClaim.ValidTo, $"Create JWToken failed to render timezone into UTC time"); Assert.AreEqual(DateTimeKind.Utc, expClaim.ValidTo.Kind); }