基本上我有一个Node.js Web应用程序,它使用快速会话模块来处理会话。
它运作完美,但有1个期望,这对我来说是毁了这个选项。如果服务器崩溃或我部署了一个新版本,会话将被完全删除,这对我来说是不可接受的。另外,我不能分享我的主服务器和备份服务器之间的会话。
所以我的目标是通过外部云数据库处理会话,只需将其视为"随意的mysql数据库"。
但有一点,我只是对如何做到这一点感到困惑。我可以为会话分配唯一ID,具体取决于从数据库加载资源,但如果这些会话被删除,我该如何重新识别用户?
我缺乏很多关于会话的知识,但由于这对我来说是一个非常重要的主题,我在这里发帖提问。
答案 0 :(得分:0)
您可以使用任何这些商店(或自己编写):
https://www.npmjs.com/package/express-session#compatible-session-stores
我正在使用connect mongo在我的mongo DB中存储会话,代码看起来像这样(app.js):
import session from 'express-session';
const MongoStore = require('connect-mongo')(session);
...
...
api.use(session({
secret: global.config.secrets.session,
saveUninitialized: false, // don't create session until something stored
resave: false, //don't save session if unmodified
store: new MongoStore({
mongooseConnection: mongoose.connection,
touchAfter: 24 * 3600 // time period in seconds
})
}));