require('dotenv').config() const express = require('express') const app = express() const port = 8080 app.set('trust proxy', true) const database = require('./src/database.js') const rateLimiter = require('express-rate-limit') const limiter = (min, count) => { return rateLimiter({ windowMs: min * 60 * 1000, max: count, message: 'Too many requests, please try again later.', standardHeaders: true, legacyHeaders: false, }) } const cookieParser = require('cookie-parser') app.use(cookieParser()) app.use(express.json()); app.use(express.static('public')) app.use((req, res, next) => { const public = { ... req.body } if (public.password !== undefined) { public.password = '********' } console.log(req.ip, req.method, req.path, public) update(req.ip, req.method, req.path, public) next() }) app.get('/', (req, res) => { const cookies = req.cookies; if (cookies === undefined || cookies.auth === undefined) { res.redirect('/login') return } const user = database.auth(req.cookies.auth) if (user === undefined) { res.redirect('/login') return } res.redirect('/home') }) app.get('/login', (req, res) => { const cookies = req.cookies; if (cookies === undefined || cookies.auth === undefined) { res.sendFile('login.html', { root: './public' }) return } const user = database.auth(req.cookies.auth) if (user === undefined) { res.sendFile('login.html', { root: './public' }) return } res.redirect('/home') }) app.get('/home', (req, res) => { const cookies = req.cookies; if (cookies === undefined || cookies.auth === undefined) { res.redirect('/login') return } const user = database.auth(req.cookies.auth) if (user === undefined) { res.redirect('/login') return } res.sendFile('home.html', { root: './public' }) }) app.get('/people', (req, res) => { res.sendFile('people.html', { root: './public' }) }) app.get('/profile', (req, res) => { res.sendFile('profile.html', { root: './public' }) }) const api = require('./src/api.js') app.use('/api', api); const connections = [] app.get('/console', (req, res) => { res.write(`