gpt4 book ai didi

c# - JwtSecurityToken 与 SecurityTokenDescriptor 中的日期不同

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:26 29 4
gpt4 key购买 nike

我正在实现 mechanizm 来管理我的应用程序中的 token ,并且我使用这样的代码来创建 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 但它们都存在相同的问题

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

最佳答案

我遇到过类似的问题,并且找到了解决方案。

而不是使用

IssuedAt = DateTime.UtcNow

你想使用

NotBefore = DateTime.UtcNow

好像是

SecurityToken.ValidFrom

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

希望这对您有所帮助。

关于c# - JwtSecurityToken 与 SecurityTokenDescriptor 中的日期不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42575898/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com