Identityserver4 Identity Server 4访问令牌生存期将在其生存期之后过期

Identityserver4 Identity Server 4访问令牌生存期将在其生存期之后过期,identityserver4,Identityserver4,我已经为测试设置了访问和刷新令牌的生存期。现在,我想知道为什么访问令牌没有遵循其生存期,并且在刷新令牌生存期之前仍然有效?我不确定是否设置正确,但以下是如何配置令牌生存期: var accessTokenLifetime = 300; var absoluteRefreshTokenLifetime = 600; resultClient = new Client {

我已经为测试设置了访问和刷新令牌的生存期。现在,我想知道为什么访问令牌没有遵循其生存期,并且在刷新令牌生存期之前仍然有效?我不确定是否设置正确,但以下是如何配置令牌生存期:

            var accessTokenLifetime = 300;
            var absoluteRefreshTokenLifetime = 600;

            resultClient = new Client
            {
                AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,
                AllowOfflineAccess = true,
                IdentityTokenLifetime = accessTokenLifetime,
                AccessTokenLifetime = accessTokenLifetime,
                UpdateAccessTokenClaimsOnRefresh = true,
                RefreshTokenUsage = TokenUsage.OneTimeOnly,
                RefreshTokenExpiration = TokenExpiration.Absolute,
                AbsoluteRefreshTokenLifetime = absoluteRefreshTokenLifetime
            };
注意:我删除了那里的一些属性


有什么想法吗?

客户端默认包含5分钟的时钟偏移,以支持不同服务中的时钟不同的情况

您可以在客户端应用程序的Startup.ConfigureServices中设置它,如本例所示,以接受1分钟的倾斜。如果愿意,也可以将其设置为零

.AddMyJwtBearer(options =>
{
    options.TokenValidationParameters.ClockSkew = TimeSpan.FromMinutes(1);
    ...

这对我来说很管用!非常感谢,@Tore:)