我正在使用 nodejs express 框架开发 REST 服务,并将用户特定数据保存在 session 中,并将用户 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]
我还给session配置了过期时间,必须清空所有session的值。
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),
}));`
但 session 值似乎在超过到期时间后仍然存在。尽管这些是休息服务并且其中不涉及任何 cookie,但我使用的是用户 ID。
根据我的理解,这个 session 应该在超过到期时间后被清除,但事实并非如此。
问题 1:如何在不重启服务器的情况下随时清除完整的 session 值? 问题 2:为什么到期时间不按照上面的代码工作?
我做错了什么吗?
请帮忙
提前致谢
最佳答案
我认为 cookie.maxAge 用于定义不活动时间。因此 session 将在 24 小时不活动后被销毁。
如果你想销毁用户 session ,你可以使用这样的方法:
req.session.destroy(function (err) {
if (err) {
// Handle error
}
else {
// Session destroyed !
}
});
希望对您有所帮助!
关于javascript - 如何在不重新启动应用程序的情况下清除所有用户的快速 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44390956/