如何在不重新启动应用程序的情况下为所有用户清除快速会话?
我正在使用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]
我也configuration了会话到期时间,它必须清除所有的会话值。
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), }));`
但会话值似乎仍然持续超过到期时间。 虽然这些是rest服务,并没有涉及到这个cookie,我使用用户的ID代替。
根据我的理解,这个会议应该在超过有效期后明确,但事实并非如此。
问题1:如何在不重新启动服务器的情况下随时清除完整的会话值? 问题2:为什么到期时间不按上面的代码工作?
难道我做错了什么 ?
请帮忙
提前致谢
我认为cookie.maxAge用于定义不活动时间。 所以会议将在24小时不活动之后被销毁。
如果你想破坏用户会话,你可以使用这样的一些思考:
req.session.destroy(function (err) { if (err) { // Handle error } else { // Session destroyed ! } });
希望能帮助到你 !
- 默认情况下,Node.js会话如何处理?
- cookieparsing器中的秘密集和会话在express.js中存储相同的东西?
- Express JS会话存储实现:TypeError:Object 没有方法'on'
- 获取用户ID socket.io,护照,koa
- 在HTML5全局sessionStorage对象上使用快速会话有什么好处?
- Passport.js twitter身份validation导致500错误,req.session未定义
- 使用RedisStore时,有什么方法可以查看当前会话吗?
- 如何仅在经过身份validation时才给予会话? 任何其他中间件订单将无法正常工作
- 会话cookie不会使用ajax和nodejs服务器进行更改