500 TypeError: Cannot read property 'connect.sid' of undefined
at Object.session [as handle] (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/middleware/session.js:239:32)
at next (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.methodOverride [as handle] (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:48:5)
at next (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.urlencoded [as handle] (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:41:37)
at next (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.json [as handle] (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/middleware/json.js:42:37)
at next (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/proto.js:193:15)
at Object.logger (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/middleware/logger.js:158:5)
at next (/Users/hanxue/Code/RTI/controlpanel/node_modules/express/node_modules/connect/lib/proto.js:193:15)
cookieParser
That error occurs because your node.js app is using express.session() without cookieParser
app.use(express.static(path.join(__dirname, 'public'))); //required for passport
app.use(express.session({secret: 'secret'})); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
To fix the error, simply add the line express.cookieParser() before express.session()
I get the same error with Express 4 although it's written in spec that Since version 1.5.0, the cookie-parser middleware no longer needs to be used for this module to work. This module now directly reads and writes cookies on req/res. Using cookie-parser may result in issues if the secret is not the same between this module and cookie-parser.
ReplyDelete