Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express'),
- app = express(),
- keystone = require('keystone'),
- serve = require('serve-static'),
- favicon = require('serve-favicon'),
- body = require('body-parser'),
- cookieParser = require('cookie-parser'),
- multer = require('multer'),
- handlebars = require('express-handlebars'),
- session = require('express-session'),
- flash = require('connect-flash'),
- hbs = require('express-hbs'),
- passport = require('passport'),
- Auth0Strategy = require('passport-auth0'),
- mongoose = require('mongoose');
- global.__basedir = __dirname;
- process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
- require('dotenv').config();
- // trust first proxy
- app.set('trust proxy', 1);
- // Configure Passport to use Auth0
- var strategy = new Auth0Strategy({
- domain: process.env.AUTH0_DOMAIN,
- clientID: process.env.AUTH0_CLIENT_ID,
- clientSecret: process.env.AUTH0_SECRET,
- callbackURL: process.env.AUTH0_CALLBACK_URL
- },
- function (accessToken, refreshToken, extraParams, profile, done) {
- return done(null, profile);
- }
- );
- passport.use(strategy);
- // This can be used to keep a smaller payload
- passport.serializeUser(function (user, done) {
- done(null, user);
- });
- passport.deserializeUser(function (user, done) {
- done(null, user);
- });
- app.use(cookieParser(process.env.COOKIE_SECRET));
- app.use(body.urlencoded({ extended: true }));
- app.use(body.json());
- app.use(multer());
- app.use(flash());
- app.use(passport.initialize());
- app.use(passport.session());
- app.engine('hbs', hbs.express4({
- layoutsDir: 'templates/views/layouts',
- partialsDir: 'templates/views/partials',
- defaultLayout: 'templates/views/layouts/default',
- extname: '.hbs',
- }));
- new require('./templates/views/helpers')()
- app.set('view engine', 'hbs');
- app.set('views', __dirname + '/templates/views');
- mongoose.connect(process.env.MONGO_URI, {
- useMongoClient: true,
- user: process.env.MONGO_USER,
- pass: process.env.MONGO_PASS
- });
- keystone.init({
- 'name': '',
- 'brand': '',
- 'mongoose': mongoose,
- 'cookie secret': process.env.COOKIE_SECRET,
- 'auto update': true,
- 'session': true,
- 'session store': 'mongo',
- 'auth': true,
- 'user model': 'User',
- 'admin path': 'admin'
- });
- keystone.import('models');
- // Serve your static assets
- app.use(serve('./public'));
- keystone.set('locals', {
- _: require('lodash'),
- env: keystone.get('env'),
- utils: keystone.utils,
- editable: keystone.content.editable,
- });
- keystone.set('admin path', 'admin');
- var routes = require('./routes')(app);
- // keystone.set('routes', require('./routes'));
- keystone.set('routes', app);
- // Configure the navigation bar in Keystone's Admin UI
- keystone.set('nav', {
- users: 'users',
- requests: 'requests'
- });
- // Start Keystone to connect to your database and initialise the web server
- keystone.start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement