【发布时间】:2018-03-22 11:11:33
【问题描述】:
我有一个关于 Nodejs 中的会话处理的基本问题,如果有人能给出提示,那就太好了!
就我而言,我正在构建一个节点应用程序,在我的计划中我希望有两个会话。一个会话由 passportjs 用于识别具有自己的过期日期和 maxAge 的用户,另一个用于用户的另一项活动
我也在使用 connect-mongo 将会话保存在数据库中。
我如何告诉passportjs 我应该使用哪个会话?根据我所看到的,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());
【问题讨论】:
-
但他只使用了一个会话对象而不是 2 个
标签: node.js session passport.js