You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AspNetCore OpenIdConnect Cookie认证:AccessToken过期处理的困惑

OpenIdConnect + Cookie认证:AccessToken过期与UseTokenLifetime的疑问

我在使用OpenIdConnect搭配Cookie认证的应用里,处理过期AccessToken时遇到了问题,这个问题和Stack Overflow上的相关提问类似,找到的解决方案是监听Cookie验证事件来校验AccessToken。但我现在有个新疑问:如果Cookie认证方案没办法强制AccessToken过期,那它存在的意义是什么?

我发现,除非注入自定义代码,否则浏览器每次请求都会续期Cookie的有效期。就算设置了UseTokenLifetime=true,认证方案也不会强制执行AccessToken的生命周期,这让这个选项看起来完全没用。我是不是遗漏了什么关键要点?有没有不需要自定义处理Cookie内Token的适用场景?

我的应用配置代码

builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(options =>
{
    options.LoginPath = "/Account/Login";
    options.ExpireTimeSpan = TimeSpan.FromSeconds(10);
})
.AddOpenIdConnect(options =>
{
    options.Authority = "myauthserver";
    options.ClientId = "myclient";
    options.ClientSecret = "clientsecret";
    options.ResponseType = OpenIdConnectResponseType.Code;
    options.SaveTokens = true;
    options.UseTokenLifetime = true;
    options.SignedOutCallbackPath = "/Home/Signout";
    options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    
    options.Scope.Add("openid");
    
    options.TokenValidationParameters = new TokenValidationParameters
    {
        NameClaimType = "preferred_username",
        RoleClaimType = "roles"
    };
});

内容的提问来源于stack exchange,提问作者KristianMedK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:05:11