Repository URL to install this package:
|
Version:
3.1.0 ▾
|
import config from 'config';
import express from 'express';
import session from 'express-session';
import passport from 'passport';
import flash from 'connect-flash';
import debugModule from 'debug';
const debug = debugModule( 'touchto:sendmail' );
const router = express.Router( {
caseSensitive: true,
strict: true,
} );
const domain = config.has( 'session.domain' ) ? config.get( 'session.domain' ) : '.touchto.io';
const secure = config.has( 'session.cookie secure' )
? config.get( 'session.cookie secure' )
: undefined;
const secret = config.has( 'session.secret' ) ? config.get( 'session.secret' ) : 'touchto-rocks';
const name = config.has( 'session.name' ) ? config.get( 'session.name' ) : 'tt.sid';
let store;
const initialize = () => {
debug( 'session layer' );
router.use(
session( {
name,
secret,
store,
saveUninitialized: true,
resave: true,
cookie: {
path: '/',
http: true,
secure,
domain,
maxAge: ( +new Date() + 12000000 ) / 1000,
},
} )
);
router.use( passport.initialize() );
router.use( passport.session() );
router.use( flash() );
};
/* eslint-disable global-require */
if ( config.has( 'session.store' ) && config.get( 'session.store' ) === 'connect-mongo' ) {
const mongoose = require( 'mongoose' );
mongoose.Promise = require( 'bluebird' );
const MongoStore = require( 'connect-mongo' )( session );
store = new MongoStore( {
mongooseConnection: mongoose.connection,
} );
}
initialize();
export default router;