AspNetCore OpenIdConnect Cookie认证:AccessToken过期处理的困惑
我在使用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
相关产品推荐
相关产品推荐

