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" | |
| } | |
| } |