summaryrefslogtreecommitdiff
path: root/middlewares/sessions.js
diff options
context:
space:
mode:
Diffstat (limited to 'middlewares/sessions.js')
-rw-r--r--middlewares/sessions.js29
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;