JwtSecurityToken не истекает, когда это должно

В настоящее время я использую класс JwtSecurityToken в пространстве имен System.IdentityModels.Tokens. Я создаю токен, используя следующее:

DateTime expires = DateTime.UtcNow.AddSeconds(10);
JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
var genericIdentity = new System.Security.Principal.GenericIdentity(username, "TokenAuth");

ClaimsIdentity identity = new ClaimsIdentity(claims);
string secret = ConfigurationManager.AppSettings["jwtSecret"].ToString();
var securityKey = new     InMemorySymmetricSecurityKey(Encoding.Default.GetBytes(secret));
var signingCreds = new SigningCredentials(securityKey,     SecurityAlgorithms.HmacSha256Signature, SecurityAlgorithms.HmacSha256Signature);
var securityToken = handler.CreateToken(
    issuer: issuer,
    audience: ConfigurationManager.AppSettings["UiUrl"].ToString(),
    signingCredentials: signingCreds,
    subject: identity,
    expires: expires,
    notBefore: DateTime.UtcNow
);
return handler.WriteToken(securityToken); 

По какой-то причине, хотя срок действия истекает через 10 секунд после текущего времени, он фактически не выдает исключение, когда токен проверяется примерно до 5 минут. Увидев это, я подумал, что, возможно, было минимальное время истечения 5 минут, поэтому я установил время истечения на:

DateTime.UtcNow.AddMinutes(5);

Затем он истекает через 10 минут, но в сообщении об исключении говорится, что время истечения установлено равным предполагаемому (5 минут после входа пользователя в систему), а когда отображается текущее время в исключении, то через 5 минут время истечения. Таким образом, кажется, что он знает, когда он ДОЛЖЕН истечь, но на самом деле он выдает исключение только через 5 минут после истечения времени. Затем, так как токен, кажется, добавляет 5 минут к тому времени, когда я установил срок его действия, я установил время истечения на:

DateTime.UtcNow.AddMinutes(-5).AddSecond(10);

Я проверил это, и до сих пор оно еще не истекло (после более чем десяти минут). Может кто-нибудь объяснить, почему это происходит и что я делаю не так? Кроме того, если вы увидите что-то еще с кодом, который я предоставил, любые рекомендации будут полезны, так как я новичок в использовании JWT и этой библиотеки.

заранее спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос