Пример #1
0
  app.configure(function() {
    // Log config settigs load
    log( 'common settings' );

    /**
     * Save config in app
     */

    app.set('config', config);

    /**
     * Basic HTTP-Auth restriction middleware
     * for production access only.
     */

    if (config.auth.basic && config.auth.basic.username && config.auth.basic.password) {
      var basic = auth({
        authRealm: 'Authentication required',
        authList : [config.auth.basic.username+':'+config.auth.basic.password]
      });
      app.use(function(req, res, next) {
        basic.apply(req, res, function(username) {
          return next();
        });
      });
    }

    /**
     * Set application http server port from `env`
     * Defaults to 3000
     */

    app.set( 'port', config('privatePort') || 3000 );

    /**
     * Set `public-assets` default path
     */

    app.use(express.static(resolve('public')));

    app.use(express.urlencoded());
    app.use(express.json());

    /**
     * Cross Origin Resource Sharing
     */

    var domains = config('cors domains');
    if (domains && domains.length) {
      var options;
      if (domains.length == 1 && domains[0] == '*') {
        options = null;
      } else {
        options = {
          origin: function(origin, callback){
            var originIsWhitelisted = domains.indexOf(origin) !== -1;
            callback(null, originIsWhitelisted);
          }
        };
      }
      app.use(cors(options));
    }

    /**
     * Use `passport` setup & helpers middleware
     */

    app.use(passport.initialize());

    /**
     * Configure native `express` cookie parser
     */

    app.use(cookieParser(config('secret')));

    /**
     * JSON Web Tokens
     */

    app.use(jwt.middlewares.user(config('secret')));

    /**
     * Set template local variables
     */

    app.use(function(req, res, next) {

      // Set user as local var if authenticated
      if(req.isAuthenticated() && req.user) res.locals.citizen = req.user;

      res.locals.t = t;

      // Call next middleware
      next();

    });

    /**
     * Use `twitter-card` and 'facebook-card' middlewares
     */

    app.use(require('lib/twitter-card/middleware'));
    app.use(require('lib/facebook-card/middleware'));

  });
Пример #2
0
  app.configure(function () {
    // Log config settigs load
    log('common settings')

    /**
     * Save config in app
     */

    app.set('config', config)

    /**
     * Basic HTTP-Auth restriction middleware
     * for production access only.
     */

    if (config.auth.basic && config.auth.basic.username && config.auth.basic.password) {
      var basic = auth({
        authRealm: 'Authentication required',
        authList: [config.auth.basic.username + ':' + config.auth.basic.password]
      })
      app.use(function (req, res, next) {
        basic.apply(req, res, function (username) {
          return next()
        })
      })
    }

    /**
     * Load endpoint for CertBot certificate validation
     */

    app.use(certbotEndpoint(config.certbot))
	
    /**
     * Set `public-assets` default path
     */

    app.use(express.static(resolve('public')))

    app.use(express.urlencoded())
    app.use(express.json())

    /**
     * Cross Origin Resource Sharing
     */

    var domains = config.corsDomains
    if (domains && domains.length) {
      var options
      if (domains.length === 1 && domains[0] === '*') {
        options = null
      } else {
        options = {
          origin: function (origin, callback) {
            var originIsWhitelisted = domains.indexOf(origin) !== -1
            callback(null, originIsWhitelisted)
          }
        }
      }
      app.use(cors(options))
    }

    /**
     * Use `passport` setup & helpers middleware
     */

    app.use(passport.initialize())

    /**
     * Configure native `express` cookie parser
     */

    app.use(cookieParser(config.jwtSecret))

    /**
     * JSON Web Tokens
     */

    app.use(jwt.middlewares.user())

    /**
     * Fetch user locale
     */

    app.use(l10n.middleware)

    /**
     * Set template local variables
     */

    app.use(function (req, res, next) {
      // Set user as local var if authenticated
      if (req.isAuthenticated() && req.user) res.locals.user = req.user

      res.locals.t = t

      // Call next middleware
      next()
    })

    /**
     * Ensure SSL redirection if necessary
     */

    sslRedirect(app, {
      protocol: config.protocol,
      https: config.https
    })

    /**
     * Use `twitter-card` and 'facebook-card' middlewares
     */

    app.use(require('lib/twitter-card/middleware'))
    app.use(require('lib/facebook-card/middleware'))
  })