在 Identity Server 4 中设置令牌有效期

Set Token Validation Period in Identity Server 4

Identity Server 4 中设置令牌有效期的机制是什么?不同代币的验证期可以不同吗?

http://docs.identityserver.io/en/dev/ 上的 Identity Server 4 文档显示了带有 属性 max_age 的 AuthorizationEndpoint,这是我想我想要的,但文档并没有真正显示它- 使用 IdentityServerWithAspNetIdentity 的快速入门代码进行操作。

令牌生命周期是根据客户端应用程序设置的。这包括身份和访问令牌。参见 client application entity

如果您谈论的是会话长度,这是由每个应用程序在使用 IdentityServer 成功验证后设置的。

我修改了 IdentityServerWithAspNetIdentity

的 Config.cs 中的客户端对象
            // OpenID Connect hybrid flow and client credentials client (MVC)
            new Client
            {
                ClientId = "mvc",
                ClientName = "MVC Client",
                AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,

                RequireConsent = false,

                ClientSecrets = 
                {
                    new Secret("LynxJournal".Sha256())
                },

                //RedirectUris = { "http://localhost:5002/signin-oidc" },
                //PostLogoutRedirectUris = { "http://localhost:5002" },
                RedirectUris = { serverConfig["MvcClientUrl"]  + "/signin-oidc" },
                PostLogoutRedirectUris = { serverConfig["MvcClientUrl"] },

                IdentityTokenLifetime = 3600,
                AccessTokenLifetime = 3600,
                AuthorizationCodeLifetime = 3600,

                AllowedScopes =
                {
                    StandardScopes.OpenId.Name,
                    StandardScopes.Profile.Name,
                    StandardScopes.OfflineAccess.Name,
                    "api1"
                }
            }

这将令牌的寿命延长到一小时,而在默认值之前似乎只有 15-20 分钟。我添加了 IdentityTokenLifetime、AccessTokenLifetime 和 AuthorizationCodeLifetime

的值