我正在实施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,但两者都有同样的问题
有谁知道为什么会这样发生并知道这些问题的解决方案?
答案 0 :(得分:1)
我遇到了类似的问题,我找到了解决方案。
而不是使用
IssuedAt = DateTime.UtcNow
您想要使用
NotBefore = DateTime.UtcNow
好像是
SecurityToken.ValidFrom
从NotBefore字段中获取其值,如果您不提供,则会自动生成一个。
希望这有帮助。