NodeJS多个会话在不同的应用程序中使用

时间:2017-10-10 22:29:29

标签: node.js session passport.js

我对Nodejs中的会话处理有一个基本的问题,如果有人可以给出提示,那就太棒了!

在我的情况下,我正在构建一个节点应用程序,在我的计划中我希望有两个会话。一个会话由passportjs用于识别用户,具有自己的过期日期和maxAge,另一个会话用于用户的另一个活动

我也使用connect-mongo来保存数据库中的会话。

我如何告诉护照我应该使用哪个会话?基于我所看到的,passportjs使用我定义的第一个会话。如何告诉passportjs在下面的代码中使用session2?



var express=require('express');
const path=require('path');
var bodyParser=require('body-parser');
var session1=require('express-session'); 
var session2=require('express-session');
var mongoose=require('mongoose');
var passport=require('passport');
var mongoSession1=require('connect-mongo')(session1);
var mongoSession2=require('connect-mongo')(session2);
mongoose.connect('mongodb://xxxx',{useMongoClient: true});
app.use(session1({
  secret:'test1',
  resave:false,
  saveUninitialized:false,
  store:new mongoSession1({
    mongooseConnection:mongoose.connection,
    ttl:24*60*60  //1 day in db
  }),
  cookie:{maxAge:24*60*60*1000}  // 1 day expire
}));
app.use(session2({
  secret:'test2',
  resave:false,
  saveUninitialized:false,
  store:new mongoSession1({
    mongooseConnection:mongoose.connection,
    ttl:60*60  //1 hour
  }),
  cookie:{maxAge:60*60*1000}  // 1 hour
}));

app.use(passport.initialize());
app.use(passport.session());




1 个答案:

答案 0 :(得分:0)

你可能可以使用这两行代码访问它们

req.session1
req.session2