archon/archon.js

45 lines
1.2 KiB
JavaScript

const express = require('express');
const session = require('express-session');
const app = express();
const port = 3000;
// Enable POST data handling
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Start creating our session config
var sess = {
secret: 'dark archon', // will need to change this later
cookie: {}
}
if (app.get('env') === 'production') {
app.set('trust proxy', 1) // trust first proxy
sess.cookie.secure = true // serve secure cookies
}
// Enable the Express.js session handling
app.use(session(sess))
// Initialize the Twig template engine - this might get swapped for Twing later.
app.set('view engine', 'twig');
// Service static files from public/
app.use(express.static('public'));
// Load middleware
authMiddleware = require('./src/middleware/authMiddleware');
app.use('/', authMiddleware.authProtected);
// Load in route handlers
indexRoutes = require('./routes/index');
authRoutes = require('./routes/auth');
// Assign routes to handlers
app.get('/', indexRoutes.home);
app.get('/auth/login', authRoutes.getLogin);
app.post('/auth/login', authRoutes.postLogin);
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});