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')); });
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')) })