gpt4 book ai didi

cookies - IdentityServer4 cookie 过期

转载 作者:行者123 更新时间:2023-12-01 12:14:26 26 4
gpt4 key购买 nike

我已经阅读 IdentityServer4 问题线程大约一天了,但我仍然对 session /登录 cookie 过期感到困惑。

如果我像这样从客户端设置 cookie 过期(我使用 IdentityServer3 客户端和 IdentityServer4 服务器,以便启用 ASP.NET 4.x webapps 进行身份验证):

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "Cookies",
ExpireTimeSpan = new TimeSpan(10, 0, 0),
SlidingExpiration = true
});

我可以打开 Chrome 开发人员工具 (F12) 并查看 cookie,并看到它们在浏览器关闭后立即过期(IdentityServer 的所有 cookie 的过期日期都设置为过期“1969-12-31T23:59: 59.000Z”,换言之,客户端未过期)。

无论我是否将客户端和服务器身份验证选项 UseTokenLifetime 都设置为 true,情况都是如此:

客户端:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
...
UseTokenLifetime = true,
...

服务器端:
services.AddAuthentication()
.AddOpenIdConnect("MyLoginScheme", "A login scheme", options =>
...
options.UseTokenLifetime = true;
...

我不确定如何让它占用我设置的客户端 cookie 生命周期。

最佳答案

尝试这个:

        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
// …
Notifications = new OpenIdConnectAuthenticationNotifications
{
SecurityTokenValidated = async n =>
{
// Set persistent cookie,
n.AuthenticationTicket.Properties.IsPersistent = true;
// and the expiration
n.AuthenticationTicket.Properties.ExpiresUtc = DateTime.Today.AddDays(1);
},
},
// …
}

至于IDS的cookie过期时间,可以在 ConfigureServices中设置。身份服务器:
        services.Configure<IdentityOptions>(options =>
{
// …
options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(1);
// …
});

关于cookies - IdentityServer4 cookie 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49325793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com