我的网站是AngularJS SPA,其Web API / SignalR后端在Owin上运行。身份验证通过存储在浏览器本地存储中的JSON Web令牌(JWT)进行管理。
根据公司指令,我正在从本地存储中的JWT迁移到具有滑动到期期限的仅HTTP的同一站点会话cookie。一切都很好,除了一个障碍:
我的应用程序显示个人健康信息(PHI),因此会话期满后,我必须自动关闭该应用程序。使用JWT,我可以检查“ exp”声明以自动确定会话已过期,并从屏幕上删除PHI。但是使用仅HTTP的cookie,我无法访问令牌的任何部分。
当我发布Cookie时,我知道其有效期并可以相应地通知浏览器。但是,当Owin刷新cookie时,需要通知浏览器新的过期时间,我不确定该怎么做。
我可以存储第二个cookie,该cookie不仅包含HTTP,而且仅包含会话到期时间,但是每当刷新主身份验证cookie时,我都必须刷新该cookie。
我如何告诉浏览器会话何时到期,并且当到期时间更改时如何保持浏览器更新?Owin刷新cookie时,如何附加事件处理程序?
这是我当前的cookie配置:
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationMode = AuthenticationMode.Active,
CookieHttpOnly = true,
ExpireTimeSpan = TimeSpan.FromHours(2),
SlidingExpiration = true,
CookieName = "Auth"
});
梵蒂冈之花
相关分类