我正在使用nodejs express框架开发REST服务,并在会话中保留用户特定数据,并将用户ID作为识别用户数据的关键。
这是我用来存储用户特定数据的代码:
let session = require("express-session");
let FileStore = require("session-file-store")(session);
//For setting up the data into session
session[userId]={name:xyz, age:22}
//For getting the data
session[userId]
我还配置了到期时间,这必须清除所有会话值。
webserver.use(session({
cookie: {
maxAge: 60 * 1000 // 24 hours
// maxAge: 24 * 60 * 60 * 1000 // 24 hours
},
key: "sid",
resave: false,
saveUninitialized: false,
secret: "keyboard cat",
store: new FileStore(storageOptions),
}));`
但即使在超过到期时间后,会话值似乎仍然存在。虽然这些是休息服务,但没有涉及到cookie,我使用的是用户ID。
根据我的理解,这个会话应该在超过到期时间后清除,但事实并非如此。
问题1:如何在不重新启动服务器的情况下随时清除完整的会话值? 问题2:为什么到期时间不符合上述代码?
我做错了吗?
请帮忙
提前致谢
答案 0 :(得分:1)
我认为cookie.maxAge用于定义不活动时间。因此会话将在24小时不活动后被销毁。
如果你想破坏用户会话,你可以使用这样的思考:
req.session.destroy(function (err) {
if (err) {
// Handle error
}
else {
// Session destroyed !
}
});
希望它有所帮助!