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": "^4.18.2",
|
||||||
"express-ejs-layouts": "^2.5.1",
|
"express-ejs-layouts": "^2.5.1",
|
||||||
"express-session": "^1.17.3",
|
"express-session": "^1.17.3",
|
||||||
|
"connect-mongo": "^5.1.0",
|
||||||
"i18n": "^0.15.1",
|
"i18n": "^0.15.1",
|
||||||
"mongoose": "^8.16.1",
|
"mongoose": "^8.16.1",
|
||||||
"multer": "^1.4.5-lts.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 path = require("path");
|
||||||
const cookieParser = require("cookie-parser");
|
const cookieParser = require("cookie-parser");
|
||||||
const session = require("express-session");
|
const session = require("express-session");
|
||||||
|
const MongoStore = require("connect-mongo");
|
||||||
const flash = require("connect-flash");
|
const flash = require("connect-flash");
|
||||||
const expressLayouts = require("express-ejs-layouts");
|
const expressLayouts = require("express-ejs-layouts");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@@ -58,13 +59,22 @@ app.use(
|
|||||||
express.static(path.join(__dirname, "public")),
|
express.static(path.join(__dirname, "public")),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Session configuration
|
// Session configuration (using MongoDB store to avoid logout khi server restart)
|
||||||
app.use(
|
app.use(
|
||||||
session({
|
session({
|
||||||
secret: process.env.SESSION_SECRET || "secret",
|
secret: process.env.SESSION_SECRET || "secret",
|
||||||
resave: true,
|
resave: false,
|
||||||
saveUninitialized: 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