我在.Net Core应用程序中使用JWT,并且在使用System.IdentityModel.Tokens.Jwt(5.6.0) 我正在尝试将到期时间设置如下:
var token = new JwtSecurityToken(
"www.site.com",
"www.site.com",
claims,
expires: DateTime.UtcNow.AddMinutes(5),
signingCredentials: credentials);
我的计算机时间是2.38 pm,令牌验证到属性值是9.43 pm。 必须是下午2.43。
我的Startup.cs配置如下:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ClockSkew = TimeSpan.Zero,
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = Configuration["Authentication:Issuer"],
ValidAudience = Configuration["Authentication:Issuer"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Authentication:Secret"]))
};
});
这是什么原因? 感谢您的帮助。
答案 0 :(得分:1)
您居住的时区为UTC -7。 DateTime.UtcNow
返回UTC时间,请改用DateTime.Now
。