【问题标题】:JwtSecurityToken different dates than in SecurityTokenDescriptorJwtSecurityToken 与 SecurityTokenDescriptor 中的日期不同
【发布时间】:2017-03-03 10:03:54
【问题描述】:

我正在实施 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 中的日期不同

带有“Expires”的“ValidTo”和带有“IssuedAt”的“ValidFrom”都在一小时内不同。

我想这与夏季/冬季时间之间的时间变化有关(目前是冬季时间),或者事实上,我生活在 UTC +1:00 时区。

我尝试同时使用 DateTime.Now 和 DateTime.UtcNow,但它们都存在同样的问题

有谁知道为什么会这样并知道这些问题的解决方案吗?

【问题讨论】:

    标签: c# datetime token


    【解决方案1】:

    我遇到了类似的问题,我已经找到了解决方案。

    而不是使用

    IssuedAt = DateTime.UtcNow
    

    你想使用

    NotBefore = DateTime.UtcNow
    

    好像

    SecurityToken.ValidFrom
    

    从 NotBefore 字段中获取它的值,如果你不提供它会自动生成一个。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-06
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 2015-05-18
      相关资源
      最近更新 更多