Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require("fs");
- const crypto = require("crypto");
- const bodyParser = require("body-parser");
- const cookieParser = require("cookie-parser");
- const expressSession = require("express-session");
- const express = require("express");
- const helmet = require("helmet");
- const Promise = require("promise");
- const nunjucks = require("nunjucks");
- const passport = require("passport");
- const Sequelize = require("sequelize");
- const http = require("http");
- const SessionStore = require('express-session-sequelize')(expressSession.Store);
- const LocalStrategy = require('passport-local').Strategy;
- var config = JSON.parse(fs.readFileSync('./etc/config.json', 'utf8'));
- var applicationName = "supipish";
- sequelize = new Sequelize(config.database.dbname, config.database.user, config.database.password, {
- host: config.database.host,
- dialect: config.database.type,
- logging: false
- });
- const sequelizeSessionStore = new SessionStore({
- db: sequelize,
- });
- var app = express();
- app.use(helmet({frameguard: true}));
- app.disable('x-powered-by');
- app.use(express.static(__dirname + config.media_path));
- // Setup middleware
- app.use(bodyParser.urlencoded({
- extended: true
- }));
- app.use(bodyParser.json());
- app.use(cookieParser());
- app.use(expressSession({
- secret: config.session,
- cookie: { secure: true },
- key: config.sid,
- saveUninitialized: true,
- resave: true,
- store : sequelizeSessionStore
- }));
- // Setup template engine
- app.set('view engine', 'html');
- nunjucks.configure([__dirname + config.templates_path], {
- autoescape: true,
- express: app,
- watch: true,
- });
- //passport
- app.use(passport.initialize());
- app.use(passport.session());
- passport.serializeUser(function(user, done) {
- done(null, user);
- });
- passport.deserializeUser(function(id, done) {
- done(null, id);
- });
- function isAuthenticated(req, res, next) {
- if (req.isAuthenticated())
- return next();
- res.redirect('/login');
- }
- app.get('/login',function(req, res){
- res.render("login", {applicationName: applicationName});
- });
- app.get("/",function(req, res){
- res.render("helloworld", {applicationName: applicationName});
- });
- app.get("/auth",isAuthenticated,function(req, res){
- res.render("helloworld", {applicationName: applicationName});
- });
- app.post('/login',
- passport.authenticate('local', { successRedirect: '/auth',
- failureRedirect: '/login',
- failureFlash: false })
- );
- app.get('/logout',
- function(req, res){
- req.logout();
- res.redirect('/');
- });
- passport.use(new LocalStrategy(
- function(username, password, done) {
- var user = {name:"superadmin", password:"superpassword"};
- if (username != user.name) {return done(null, false, { message: 'Incorrect username.' });} ;
- if (password != user.password) {return done(null, false, { message: 'Incorrect password.' });} ;
- console.log("Authentication successful");
- return done(null, user);
- }
- ));
- server = http.createServer(app);
- server.listen(config.port,config.host);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement