2017-06-06 63 views
1

我正在开发使用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:为什么到期时间不按上述代码工作?

我做错了什么?

请帮

在此先感谢

回答

1

我觉得cookie.maxAge用于定义不活动时间。因此会话将在24小时不活动后被销毁。

如果你想detroy用户会话,你可以使用somethink这样的:

req.session.destroy(function (err) { 
    if (err) { 
    // Handle error 
    } 
    else { 
    // Session destroyed ! 
    } 
}); 

希望它能帮助!

相关问题