Javascript 观察nodejs中的会话创建销毁事件
我使用的是“快速会话”和“记忆存储”。我想记录会话创建和销毁活动。我的解决方案是,拍摄当前“sessionStorage”的快照,稍后将其与当前“sessionStorage”进行比较,并根据差异,报告创建的会话和销毁的活动Javascript 观察nodejs中的会话创建销毁事件,javascript,node.js,express-session,Javascript,Node.js,Express Session,我使用的是“快速会话”和“记忆存储”。我想记录会话创建和销毁活动。我的解决方案是,拍摄当前“sessionStorage”的快照,稍后将其与当前“sessionStorage”进行比较,并根据差异,报告创建的会话和销毁的活动 let sessionSnapshot; app.get('/', function (req, res, next) { let currentSnapshot = req.sessionStore; let difference = sessionSna
let sessionSnapshot;
app.get('/',
function (req, res, next) {
let currentSnapshot = req.sessionStore;
let difference = sessionSnapshot.filter(x => !currentSnapshot.includes(x));
// Report create/destroy activities based on difference.
});
是否有其他位置/回调可以跟踪会话创建和销毁事件?
我也在使用“passport”。您可以对该功能进行修补 然后,您可以在应用程序中使用此修补内存存储
app.use(session({
cookie: { maxAge: 86400000 },
store: new MemoryStore({
checkPeriod: 86400000 // prune expired entries every 24h
}),
resave: false,
secret: 'keyboard cat'
}))
UPD:可能,以类似的方式修补MemoryStore.prototype.touch也会有用“设置”不是捕获会话创建事件的好方法。它被多次调用。但是,在插入会话时,可以将其与唯一缓存进行比较,以查看其是否为新会话。谢谢你!
app.use(session({
cookie: { maxAge: 86400000 },
store: new MemoryStore({
checkPeriod: 86400000 // prune expired entries every 24h
}),
resave: false,
secret: 'keyboard cat'
}))