Skip to content

Instantly share code, notes, and snippets.

@adammockor
Last active January 22, 2017 11:34
Show Gist options
  • Save adammockor/122ea975bb4e155e046ee36f0327d186 to your computer and use it in GitHub Desktop.
Save adammockor/122ea975bb4e155e046ee36f0327d186 to your computer and use it in GitHub Desktop.
express-mongoose-store

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"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment