From 2611ded920a8345922346ed0d43e4efdd94401a1 Mon Sep 17 00:00:00 2001 From: Julien Dessaux Date: Thu, 27 Oct 2022 23:56:29 +0200 Subject: Began implementing middlewares, session and auth --- middlewares/sessions.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 middlewares/sessions.js (limited to 'middlewares/sessions.js') 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; -- cgit v1.2.3