Install:
node index.js
Run:
node index.js
curl -L http://localhost:3000/auth/fake --cookie cookie.txt --cookie-jar cookie.txt
var http = require('http'); | |
var express = require('express'); | |
var session = require('express-session'); | |
var cookieParser = require('cookie-parser'); | |
var passport = require('passport'); | |
var mongoose = require('mongoose'); | |
var MongoStore = require('express-mongoose-store')(session, mongoose); | |
mongoose.connect('mongodb://localhost/test', { | |
db: { | |
safe: true | |
} | |
}); | |
mongoose.connection.on('error', function(err) { | |
console.log(err); | |
}); | |
mongoose.connection.once('open', function(err) { | |
console.log('DB connection established'); | |
}); | |
var app = express(); | |
app.use(cookieParser('my secret')); | |
app.use(session({ | |
secret: 'my secret', | |
// this is currently not working sice express-mongoose-store-1.0.6 | |
store: new MongoStore({ | |
db: mongoose.connection.db, | |
ttl: 86400000 | |
}, function(err) { | |
log.error(err); | |
}), | |
cookie: { | |
expires: new Date(Date.now() + 86400000), | |
maxAge: 86400000 | |
}, | |
resave: true, | |
saveUninitialized: true | |
})); | |
app.use((req, res, next) => { | |
setTimeout(() => { | |
if(req && req.session && req.session.user_tmp) { | |
req.user = req.session.user_tmp; | |
} | |
if(next) { | |
next(); | |
} | |
}, 1000); | |
}); | |
app.get( | |
'/', | |
(req, res, next) => { | |
if (req.isAuthenticated()) { | |
return next(); | |
} | |
console.log('Auth failed'); | |
}, | |
(req, res, next) => { | |
console.log('Auth successful'); | |
} | |
); | |
var fakeUser = {"id":123, "_id":"fake"}; | |
app.get('/auth/fake', | |
(req, res, next) => { | |
req.session = req.session || {}; | |
req.session.user_tmp = fakeUser; | |
next(); | |
}, | |
(req, res) => { | |
res.redirect('/'); | |
} | |
); | |
app.set('port', 3000); | |
var server = http.createServer(app).listen(3000); |
{ | |
"name": "express-mongoose-store-bug", | |
"version": "1.0.0", | |
"description": "", | |
"main": "index.js", | |
"scripts": { | |
"test": "echo \"Error: no test specified\" && exit 1" | |
}, | |
"author": "", | |
"license": "ISC", | |
"dependencies": { | |
"cookie-parser": "~1.4.3", | |
"express": "~4.14.0", | |
"express-mongoose-store": "1.0.7", | |
"express-session": "~1.14.2", | |
"mongoose": "~4.1.5", | |
"passport": "~0.3.2" | |
} | |
} |