Advertisement
Guest User

Untitled

a guest
Feb 16th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const fs = require("fs");
  2. const crypto = require("crypto");
  3. const bodyParser = require("body-parser");
  4. const cookieParser = require("cookie-parser");
  5. const expressSession = require("express-session");
  6. const express = require("express");
  7. const helmet = require("helmet");
  8. const Promise = require("promise");
  9. const nunjucks = require("nunjucks");
  10. const passport = require("passport");
  11. const Sequelize = require("sequelize");
  12. const http = require("http");
  13. const SessionStore = require('express-session-sequelize')(expressSession.Store);
  14. const LocalStrategy = require('passport-local').Strategy;
  15.  
  16. var config = JSON.parse(fs.readFileSync('./etc/config.json', 'utf8'));
  17. var applicationName = "supipish";
  18.  
  19. sequelize = new Sequelize(config.database.dbname, config.database.user, config.database.password, {
  20.         host: config.database.host,
  21.         dialect: config.database.type,
  22.         logging: false
  23.     });
  24.    
  25. const sequelizeSessionStore = new SessionStore({
  26.     db: sequelize,
  27. });
  28.  
  29. var app = express();
  30. app.use(helmet({frameguard: true}));
  31.  
  32. app.disable('x-powered-by');
  33.  
  34. app.use(express.static(__dirname + config.media_path));
  35.  
  36. // Setup middleware
  37. app.use(bodyParser.urlencoded({
  38.     extended: true
  39. }));
  40. app.use(bodyParser.json());
  41. app.use(cookieParser());
  42. app.use(expressSession({
  43.     secret: config.session,
  44.     cookie: { secure: true },
  45.     key: config.sid,
  46.     saveUninitialized: true,
  47.     resave: true,
  48.     store : sequelizeSessionStore
  49. }));
  50.  
  51. // Setup template engine
  52. app.set('view engine', 'html');
  53.  
  54. nunjucks.configure([__dirname + config.templates_path], {
  55.     autoescape: true,
  56.     express: app,
  57.     watch: true,
  58. });
  59.  
  60. //passport
  61. app.use(passport.initialize());
  62. app.use(passport.session());
  63.  
  64. passport.serializeUser(function(user, done) {
  65.     done(null, user);
  66. });
  67.  
  68. passport.deserializeUser(function(id, done) {
  69.     done(null, id);
  70. });
  71.  
  72. function isAuthenticated(req, res, next) {
  73.     if (req.isAuthenticated())
  74.         return next();
  75.     res.redirect('/login');
  76. }
  77.  
  78. app.get('/login',function(req, res){
  79.     res.render("login", {applicationName: applicationName});
  80. });
  81.  
  82. app.get("/",function(req, res){
  83. res.render("helloworld", {applicationName: applicationName});
  84. });
  85.  
  86. app.get("/auth",isAuthenticated,function(req, res){
  87. res.render("helloworld", {applicationName: applicationName});
  88. });
  89.  
  90. app.post('/login',
  91.   passport.authenticate('local', { successRedirect: '/auth',
  92.                                    failureRedirect: '/login',
  93.                                    failureFlash: false })
  94. );
  95.  
  96. app.get('/logout',
  97.   function(req, res){
  98.     req.logout();
  99.     res.redirect('/');
  100. });
  101.  
  102.  
  103.  
  104. passport.use(new LocalStrategy(
  105.   function(username, password, done)  {
  106.      
  107.     var user = {name:"superadmin", password:"superpassword"};
  108.  
  109. if (username != user.name) {return done(null, false, { message: 'Incorrect username.' });} ;
  110. if (password != user.password) {return done(null, false, { message: 'Incorrect password.' });} ;   
  111.     console.log("Authentication successful");
  112.       return done(null, user);
  113.    
  114.   }
  115. ));
  116.  
  117. server = http.createServer(app);
  118. server.listen(config.port,config.host);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement