0

我的 openiddict 配置为

services.AddOpenIddict(options =>
        {
            options.AddEntityFrameworkCoreStores<TestDbContext>();
            options.AddMvcBinders();
            options.EnableAuthorizationEndpoint("/connect/authorize")
                   .EnableLogoutEndpoint("/connect/logout")
                   .EnableIntrospectionEndpoint("/connect/introspect")
                   .EnableUserinfoEndpoint("/api/userinfo");
            options.AllowImplicitFlow();
            options.RequireClientIdentification();
            options.EnableRequestCaching();
            options.DisableSlidingExpiration();
            options.AddSigningCertificate(
                assembly: typeof(Startup).GetTypeInfo().Assembly,
                resource: "Server.test.pfx",
                password: "test"); // embedded resource
            options.SetAccessTokenLifetime(TimeSpan.FromDays(1));
            options.SetIdentityTokenLifetime(TimeSpan.FromDays(1));
        });

当我在本地测试时,令牌似乎与上面指定的一样长,但在生产(Windows Server 2016 IIS 10)上它过早过期(大约 1 小时)。netcore1 和 netcore2 都是这种情况。我知道我可以选择进行静默令牌更新,但现在想避免该过程。这种行为有什么已知的原因吗?

4

1 回答 1

1

当我在本地测试时,令牌似乎与上面指定的一样长,但在生产(Windows Server 2016 IIS 10)上它过早过期(大约 1 小时)。

默认情况下,OpenIddict 使用 ASP.NET Core 数据保护来加密其访问令牌。

为了使数据保护堆栈正常工作,您必须在投入生产时对其进行配置。有关更多信息,请参阅OpenIddict:两个或更多服务实例计数时出现 401 错误

于 2017-09-02T11:15:21.053 回答