1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import expressSession from "express-session";
import Database from "better-sqlite3";
import sqliteStore from "better-sqlite3-session-store";
const SqliteStore = sqliteStore(expressSession);
const db = new Database(
process.env.NODE_ENV === "test" ? "testsessions.db" : "sessions.db",
process.env.NODE_ENV === "development" ? { verbose: console.log } : null
);
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;
|