2017-03-03 133 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字段有取其值,如果你不這樣做提供一個它會自動生成一個。

希望這會有所幫助。