Mysql 如何在用户登录express会话后生成会话?
我正在使用express.js、expressmysql会话和passport.js。express session中间件正在为静态文件请求(如登录页面)创建会话,登录页面正在会话表中创建另一个条目 我将静态中间件移到了express会话中间件之前。但是,当我在会话中间件之前移动静态中间件之后发出登录请求时,passport会抛出一个错误“passport.initialize middlware not in use” 我猜这可能是因为请求中没有“connect.sid”cookie 这就是我的configure函数的样子Mysql 如何在用户登录express会话后生成会话?,mysql,node.js,session,express,passport.js,Mysql,Node.js,Session,Express,Passport.js,我正在使用express.js、expressmysql会话和passport.js。express session中间件正在为静态文件请求(如登录页面)创建会话,登录页面正在会话表中创建另一个条目 我将静态中间件移到了express会话中间件之前。但是,当我在会话中间件之前移动静态中间件之后发出登录请求时,passport会抛出一个错误“passport.initialize middlware not in use” 我猜这可能是因为请求中没有“connect.sid”cookie 这就是我
app.configure(function () {
app.set('mode', process.argv[2] || 'local');
app.set('port', config.port || 8080);
app.use(express.favicon(__dirname + '/public/favicon.ico'));
app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.cookieParser());
app.use(express.json());
app.use(express.urlencoded());
// this is a route handler for serving public file incase user doesn't have session
app.get("/*", policies.publicRoute.handleRoute());
app.use(busboy({
limits: {
fileSize: maxFileSize,
files : 1
}
}));
//create session store
var sessionStore = new SessionStore({}, connection);
// required for passport
app.use(express.session({
secret: 'mySecret',
cookie: { maxAge : myNumber },
store: sessionStore,
resave: true,
saveUninitialized: true
}));
app.use(passport.initialize());
app.use(passport.session());
});
我想你需要显示app.js文件的相关部分。FWIW通常的顺序是这样的:
app.use(passport.initialize());app.use(passport.session())代码>(…并确保您的身体分析在所有这些之前)。我已经添加了我的app.configure功能。当请求对象没有connect.sid cookie属性时,会发生passport.initialize错误。