Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
touchto-core / lib / session.js
Size: Mime:
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;