Open Sarfarazsajjad opened 9 years ago
Hi @Sarfarazsajjad, thank you for your question. I see that you already forked this repo. Please commit your changes into it. It will make running your example easier and we will se what we can do with it. If we will get into solution with your issue I could merge your solution into repositiory as an example for others.
i am trying to use your code while saving sessions on mongodb using mongo-connect. here is my code
var cookieParser = require('cookie-parser'); var cookie = require('cookie'); var session = require('express-session'); var MongoStore = require('connect-mongo')(session);
var COOKIE_SECRET = 'secret'; var COOKIE_NAME = 'sid'; // configure Express
app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.use(logger({path: "expressloggerfile.txt"})); app.use(cookieParser(COOKIE_SECRET));
var settings = { db : db, url : mongoClientConnectionString, ssl : true, cookie_secret : COOKIE_SECRET } app.use(session({ name: COOKIE_NAME, secret: settings.cookie_secret, store: new MongoStore({ db : settings.db, }), resave : true, saveUninitialized : true, cookie: { path: '/', httpOnly: true, secure: false, maxAge: null } }));
app.use(passport.initialize()); app.use(passport.session()); // app.use(app.router); app.use(express.static(__dirname + '/public'));
app.get('/', function(req, res){ res.render('index', { user: req.user,serverAddress : socketClientConnectionString, page:"login" }); });
io.use(function(socket, next) { try { var data = socket.handshake || socket.request; if (! data.headers.cookie) { return next(new Error('Missing cookie headers')); } console.log('cookie header ( %s )', JSON.stringify(data.headers.cookie)); var cookies = cookie.parse(data.headers.cookie); console.log('cookies parsed ( %s )', JSON.stringify(cookies)); if (! cookies[COOKIE_NAME]) { return next(new Error('Missing cookie ' + COOKIE_NAME)); } var sid = cookieParser.signedCookie(cookies[COOKIE_NAME], COOKIE_SECRET); if (! sid) { return next(new Error('Cookie signature is not valid')); } console.log('session ID ( %s )', sid); data.sid = sid; MongoStore.get(sid, function(err, session) { if (err) return next(err); if (! session) return next(new Error('session not found')); data.session = session; next(); }); } catch (err) { console.error(err.stack); next(new Error('Internal server error')); } });
it is giving me error
cookie header ( "utma=111872281.325443184.1409593825.1409593825.1409596029.2; utmz=111872281.1409593825.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); io=Adk7O7RvVoTLwZjlAAAB; _ga=GA1.1.325443184.1409593825; _lang=en; sid=s%3AhL3WpSZhFbXcbzBfQycIAkvrLTmx23H-.P%2BX%2BtixJ6lRg49xycOIT%2FILxb8Ime%2BC8Bc2sywVRs%2Bs" ) cookies parsed ( {"utma":"111872281.325443184.1409593825.1409593825.1409596029.2","utmz":"111872281.1409593825.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)","io":"Adk7O7RvVoTLwZjlAAAB","_ga":"GA1.1.325443184.1409593825","_lang":"en","sid":"s:hL3WpSZhFbXcbzBfQycIAkvrLTmx23H-.P+X+tixJ6lRg49xycOIT/ILxb8Ime+C8Bc2sywVRs+s"} ) session ID ( hL3WpSZhFbXcbzBfQycIAkvrLTmx23H- ) TypeError: Object function MongoStore(options, callback) { options = options || {}; Store.call(this, options);
} has no method 'get'