JwtSecurityToken разные даты, чем в SecurityTokenDescriptor

2

Я внедряю Mechanizm для управления токенами в своем приложении, и я использую такой код для создания JwtSecurityToken

var securityTokenDescriptor = new SecurityTokenDescriptor()
{
    Subject = claims,
    SigningCredentials = signingCredentials,
    Expires = DateTime.UtcNow.AddMinutes(ACCESS_TOKEN_LENGHT_MINUTES),
    IssuedAt = DateTime.UtcNow
};

var tokenJwt = tokenHandler.CreateJwtSecurityToken(securityTokenDescriptor);

И неожиданно даты в "tokenJwt" различаются, чем в securityTokenDescriptor

Оба "ValidTo" с "Expires" и "ValidFrom" с "IssuedAt" отличаются ровно на один час.

Я полагаю, что это связано с изменением времени между летними/зимними временами (в настоящее время это зимнее время) или фактом, что я живу в часовой пояс UTC +1: 00.

Я попытался использовать как DateTime.Now, так и DateTime.UtcNow, но есть одна и та же проблема с обоими из них

Кто-нибудь знает, почему это происходит так и знает решение этой проблемы?

Теги:
datetime
token

1 ответ

1

У меня возникла аналогичная проблема, и я нашел решение.

Вместо того, чтобы использовать

IssuedAt = DateTime.UtcNow

Вы хотите использовать

NotBefore = DateTime.UtcNow

Кажется, что

SecurityToken.ValidFrom

Принимает значение из поля NotBefore, и если вы его не подадите, он автоматически сгенерирует его.

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню