require('dotenv').config(); const express = require('express'); const bodyParser = require('body-parser'); const session = require('express-session'); const cookieParser = require('cookie-parser'); const SQLiteStore = require('connect-sqlite3')(session); const debug = require('debug')('app'); const tasksRouter = require('./routes/tasks'); const authRouter = require('./routes/auth'); const authMiddleware = require('./middleware/auth'); const app = express(); const port = 3044; app.use(bodyParser.json()); app.use(cookieParser()); app.use(express.static('public')); // Configure session middleware with SQLite store app.use(session({ secret: process.env.SESSION_SECRET || 'default_secret', // Use a strong secret in production resave: false, saveUninitialized: false, store: new SQLiteStore({ db: 'sessions.sqlite', dir: '/data', ttl: 30 * 24 * 60 * 60 // 1 month }), cookie: { //secure: process.env.NODE_ENV === 'production', // Ensure cookies are only sent over HTTPS in production secure: false, maxAge: 30 * 24 * 60 * 60 * 1000 // 1 month } })); app.use('/', authRouter); app.use('/', authMiddleware, tasksRouter); app.listen(port, () => { debug(`Server running at http://localhost:${port}`); });