2017-03-03 131 views
1

我执行mechanizm我用这样的代码来创建JwtSecurityTokenJwtSecurityToken不同的日期比SecurityTokenDescriptor

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时区。

我试图同时使用DateTime.Now和DateTime.UtcNow但他们两个同样的问题

有谁知道它为什么发生这样的,知道这些问题的解决方案?

回答

1

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

而不是使用

IssuedAt = DateTime.UtcNow 

你想的要使用

NotBefore = DateTime.UtcNow 

好像

SecurityToken.ValidFrom 

从notBefore字段有取其值,如果你不这样做提供一个它会自动生成一个。

希望这会有所帮助。