Openiddict implicitflow过早令牌到期

时间:2017-09-02 06:03:59

标签: asp.net-core iis-10 openiddict

我的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服务器2016 IIS 10)时,它过早地过期(大约1小时)。 netcore1和netcore2都是这种情况。 我知道我可以选择进行静默令牌续订,但是现在想避免这个过程。这种行为是否有任何已知原因?

1 个答案:

答案 0 :(得分:1)

  

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

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

要使Data Protection堆栈正常工作,您必须在进行生产时对其进行配置。有关详细信息,请参阅OpenIddict: 401 errors when two or more service instance count