21 lines
		
	
	
		
			653 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			653 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import session from 'express-session';
 | |
| import MongoStoreFactory from 'connect-mongo';
 | |
| 
 | |
| const MongoStore = MongoStoreFactory(session);
 | |
| const sessionSecret = process.env.SESSION_SECRET;
 | |
| const url = process.env.MONGODB || process.env.MONGOHQ_URL;
 | |
| 
 | |
| export default function sessionsMiddleware() {
 | |
|   return session({
 | |
|     // 900 day session cookie
 | |
|     cookie: { maxAge: 900 * 24 * 60 * 60 * 1000 },
 | |
|     // resave forces session to be resaved
 | |
|     // regardless of whether it was modified
 | |
|     // this causes race conditions during parallel req
 | |
|     resave: false,
 | |
|     saveUninitialized: true,
 | |
|     secret: sessionSecret,
 | |
|     store: new MongoStore({ url })
 | |
|   });
 | |
| }
 |