1

我的 Angular 应用程序的静默刷新机制出现问题,因为身份服务器无法正确设置 cookie 过期时间。

成功登录后,将为身份服务器的域设置以下 cookie: 2020-08-20 12_53_39-ORF Zuul - Microsoft Visual Studio

正如您在图片中看到的,“idsrv.session”cookie 具有到期“会话”。在我的旧 IdentityServer3 中,此 cookie 具有正确的到期日期,并且一切正常。

谁能帮我解决这个问题。我需要一种方法来为“idsrv.session”cookie 设置过期日期。

以下是我为实现目标而添加的当前配置/语句:

// Startup.cs - ConfigureServices()
services
   .AddIdentityServer(options =>
   {
      options.EmitStaticAudienceClaim = true;
      options.AccessTokenJwtType = "JWT";
      options.Authentication.CookieLifetime = TimeSpan.FromDays(30);
   })
services
   .AddAuthentication("Cookies")
   .AddCookie("Cookies", options =>
   {
      options.ExpireTimeSpan = TimeSpan.FromDays(30);
   })
// AccountController.cs - Login()
await HttpContext.SignInAsync(isuser, new AuthenticationProperties
   {
       IsPersistent = true,
       ExpiresUtc = DateTimeOffset.UtcNow.Add(TimeSpan.FromDays(30))
    });

但此设置对“idsrv.session”cookie 没有影响。

我使用 .net core 3.1 和 IdentityServer4 4.0.4。

谢谢!!

解决方案:

就我而言,以下语句对我有帮助,即用户不会在 30 分钟后注销。过期“idsrv.session”cookie 虽然仍设置为会话,但在 30 分钟后不会删除。

services.Configure<SecurityStampValidatorOptions>(o => o.ValidationInterval = TimeSpan.FromDays(30));
4

0 回答 0