我正在实施 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 但它们都存在相同的问题
有谁知道为什么会发生这样的情况并知道这些问题的解决方案?
我遇到了类似的问题,并且找到了解决方案。
而不是使用
IssuedAt = DateTime.UtcNow
你想使用
NotBefore = DateTime.UtcNow
这好像是
SecurityToken.ValidFrom
从 NotBefore 字段获取其值,如果您不提供该值,它将自动生成一个。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)