我对会话处理有一些要求,而且我在执行会话时遇到了问题。
会话需要:
我能够配置项目1而不是项目2.每次用户浏览应用程序时,cookie都会更新(时间+ 30分钟)并发送回浏览器,但同时会话存储TTL也是刷新。最后一部分是我需要停止的。
我相信TTL刷新是作为快速会话的一项功能实现的。 Session.touch()由中间件调用,但是有一个设置会删除此操作吗?
堆栈: 节点,express,express-session,connect-redis用于会话存储。
配置:
keyup
答案 0 :(得分:0)
我不认为选项2是快速会话支持的功能。因此,您可以只为每个会话添加一个属性,指示它的启动时间,然后每隔10分钟左右(可能是一个间隔计时器),查询该属性超过8小时的所有会话并将其从数据库。
您可以实现在每个请求上检查会话过期的中间件,如果发现会话超过8小时,则删除会话。
您应该知道,实现此行为可能会导致用户在使用您的应用程序时丢失其会话(这就是通常不以这种方式实现的原因)。