【发布时间】:2021-10-29 10:23:19
【问题描述】:
我有一个场景,我需要为 JWT 不记名令牌设置时钟偏差。但无论我做什么,代码都会忽略我的设置。
我尝试在基础设施层的依赖注入文件的多个不同部分中配置它,但它忽略了所有部分。
我现在有这个:
services.AddIdentityServer(options =>
{
options.IssuerUri = configuration.GetSection("MyCurrentDomainName")?.Value;
options.Authentication.CookieLifetime = TimeSpan.FromDays(999);
options.Authentication.CookieSlidingExpiration = true;
}).AddApiAuthorization<ApplicationUser, ApplicationDbContext>();
services.AddAuthentication()
.AddIdentityServerJwt();
services.Configure<JwtBearerOptions>(configuration =>
{
configuration.TokenValidationParameters.ClockSkew = TimeSpan.FromSeconds(9875664);
});
services.TryAddEnumerable(ServiceDescriptor
.Singleton<IConfigureOptions<JwtBearerOptions>, ConfigureBearerOptions>());
Services.AddTransient<IProfileService, ProfileService>();
services.TryAddEnumerable(ServiceDescriptor
.Singleton<IPostConfigureOptions<JwtBearerOptions>, ConfigureJwtBearerOptions>());
代码忽略我的配置并将时钟偏差设置为默认的 5 分钟。
在上面代码的最后一行,我有一个 PostConfigurationOption,我也在那里设置了时钟偏差,它运行代码,但是当 WebUI 层调用身份验证时,时钟偏差将默认为 5分钟。
我在这里做错了什么?
【问题讨论】:
标签: asp.net-core jwt