JWT令牌过期未设置为所需时间

时间:2020-05-03 21:41:24

标签: c# .net-core jwt asp.net-core-webapi

我在.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"]))
            };
        });

这是什么原因? 感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您居住的时区为UTC -7。 DateTime.UtcNow 返回UTC时间,请改用DateTime.Now

相关问题