forked from UKSOURCE/cms.hailearning.edu.vn
feat: Integrate MongoDB session store for improved session management
This commit is contained in:
@@ -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",
|
||||
|
||||
16
server.js
16
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",
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user