Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. var express = require('express'),
  2. app = express(),
  3. keystone = require('keystone'),
  4. serve = require('serve-static'),
  5. favicon = require('serve-favicon'),
  6. body = require('body-parser'),
  7. cookieParser = require('cookie-parser'),
  8. multer = require('multer'),
  9. handlebars = require('express-handlebars'),
  10. session = require('express-session'),
  11. flash = require('connect-flash'),
  12. hbs = require('express-hbs'),
  13. passport = require('passport'),
  14. Auth0Strategy = require('passport-auth0'),
  15. mongoose = require('mongoose');
  16.  
  17.  
  18.  
  19. global.__basedir = __dirname;
  20. process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
  21. require('dotenv').config();
  22.  
  23. // trust first proxy
  24. app.set('trust proxy', 1);
  25.  
  26. // Configure Passport to use Auth0
  27. var strategy = new Auth0Strategy({
  28. domain: process.env.AUTH0_DOMAIN,
  29. clientID: process.env.AUTH0_CLIENT_ID,
  30. clientSecret: process.env.AUTH0_SECRET,
  31. callbackURL: process.env.AUTH0_CALLBACK_URL
  32. },
  33. function (accessToken, refreshToken, extraParams, profile, done) {
  34. return done(null, profile);
  35. }
  36. );
  37. passport.use(strategy);
  38.  
  39. // This can be used to keep a smaller payload
  40. passport.serializeUser(function (user, done) {
  41. done(null, user);
  42. });
  43.  
  44.  
  45. passport.deserializeUser(function (user, done) {
  46. done(null, user);
  47. });
  48.  
  49. app.use(cookieParser(process.env.COOKIE_SECRET));
  50. app.use(body.urlencoded({ extended: true }));
  51. app.use(body.json());
  52. app.use(multer());
  53. app.use(flash());
  54. app.use(passport.initialize());
  55. app.use(passport.session());
  56.  
  57.  
  58. app.engine('hbs', hbs.express4({
  59. layoutsDir: 'templates/views/layouts',
  60. partialsDir: 'templates/views/partials',
  61. defaultLayout: 'templates/views/layouts/default',
  62. extname: '.hbs',
  63. }));
  64. new require('./templates/views/helpers')()
  65. app.set('view engine', 'hbs');
  66. app.set('views', __dirname + '/templates/views');
  67.  
  68. mongoose.connect(process.env.MONGO_URI, {
  69. useMongoClient: true,
  70. user: process.env.MONGO_USER,
  71. pass: process.env.MONGO_PASS
  72.  
  73. });
  74.  
  75. keystone.init({
  76. 'name': '',
  77. 'brand': '',
  78. 'mongoose': mongoose,
  79. 'cookie secret': process.env.COOKIE_SECRET,
  80. 'auto update': true,
  81. 'session': true,
  82. 'session store': 'mongo',
  83. 'auth': true,
  84. 'user model': 'User',
  85. 'admin path': 'admin'
  86. });
  87.  
  88. keystone.import('models');
  89.  
  90. // Serve your static assets
  91. app.use(serve('./public'));
  92.  
  93.  
  94. keystone.set('locals', {
  95. _: require('lodash'),
  96. env: keystone.get('env'),
  97. utils: keystone.utils,
  98. editable: keystone.content.editable,
  99. });
  100.  
  101. keystone.set('admin path', 'admin');
  102.  
  103.  
  104. var routes = require('./routes')(app);
  105. // keystone.set('routes', require('./routes'));
  106. keystone.set('routes', app);
  107. // Configure the navigation bar in Keystone's Admin UI
  108. keystone.set('nav', {
  109. users: 'users',
  110. requests: 'requests'
  111. });
  112.  
  113. // Start Keystone to connect to your database and initialise the web server
  114. keystone.start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement