diff options
Diffstat (limited to '')
-rw-r--r-- | middlewares/sessions.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/middlewares/sessions.js b/middlewares/sessions.js new file mode 100644 index 0000000..6112a8c --- /dev/null +++ b/middlewares/sessions.js @@ -0,0 +1,29 @@ +import expressSession from "express-session"; +import sqlite from "better-sqlite3"; +import sqliteStore from "better-sqlite3-session-store"; + +const SqliteStore = sqliteStore(expressSession); +const db = new sqlite("sessions.db", { verbose: console.log }); +const secret = process.env.SESSION_SECRET || "secret"; +const session = expressSession({ + cookie: { + httpOnly: true, + maxAge: 1000 * 60 * 60 * 24 * 15, // 15 days + sameSite: "Strict", + secure: process.env.NODE_ENV === "production" ? true : false, + }, + name: "JDMSessionId", + saveUninitialized: false, + secret: secret, + store: new SqliteStore({ + client: db, + expired: { + clear: true, + intervalMs: 1000 * 60 * 60, // 60min + } + }), + resave: false, + unset: "destroy", +}); + +export default session; |