【发布时间】:2020-11-16 16:09:22
【问题描述】:
基于Get expire time of OAuth session,我创建了一个简单的方法来检索到期日期。我使用了两个答案并得到了不同的结果:
var tokenResponse = await httpClient.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest
{
Address = tokenEndpoint,
ClientId = client,
ClientSecret = secret,
GrantType = "client_credentials",
Scope = scope,
});
var currDateTime = DateTime.Now;
var tokenExpireDate1 = currDateTime.AddSeconds(tokenResponse.ExpiresIn);
var handler = new JwtSecurityTokenHandler();
var jwtToken = handler.ReadToken(tokenResponse.AccessToken) as JwtSecurityToken;
var tokenExpireDate2 = jwtToken.ValidTo;
为什么日期不同?为什么第二个日期小于当前日期?
【问题讨论】:
-
它们相差多少?您是否考虑过时区?
-
您可以使用
DateTime.UtcNow,而不是在DateTime.Now中添加秒数,然后检查两个日期,它将显示相同的日期或准确的结果。
标签: c# .net-core oauth-2.0 azure-active-directory