diff --git a/package.json b/package.json index f8210bc..a3fddd9 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "express": "^4.18.2", "express-ejs-layouts": "^2.5.1", "express-session": "^1.17.3", + "connect-mongo": "^5.1.0", "i18n": "^0.15.1", "mongoose": "^8.16.1", "multer": "^1.4.5-lts.1", diff --git a/server.js b/server.js index b680e22..7778bdc 100644 --- a/server.js +++ b/server.js @@ -3,6 +3,7 @@ const dotenv = require("dotenv"); const path = require("path"); const cookieParser = require("cookie-parser"); const session = require("express-session"); +const MongoStore = require("connect-mongo"); const flash = require("connect-flash"); const expressLayouts = require("express-ejs-layouts"); const fs = require("fs"); @@ -58,13 +59,22 @@ app.use( express.static(path.join(__dirname, "public")), ); -// Session configuration +// Session configuration (using MongoDB store to avoid logout khi server restart) app.use( session({ secret: process.env.SESSION_SECRET || "secret", - resave: true, + resave: false, saveUninitialized: false, - cookie: { maxAge: 1000 * 60 * 60 * 24 }, // 24 hours + store: MongoStore.create({ + mongoUrl: process.env.MONGODB_URI, + collectionName: "sessions", + ttl: 60 * 60 * 24, // 24 hours (in seconds) + }), + cookie: { + maxAge: 1000 * 60 * 60 * 24, // 24 hours + httpOnly: true, + sameSite: "lax", + }, }), );