Add sqlite session management

This commit is contained in:
Will Bradley 2025-07-16 18:29:56 -07:00
parent dbf59e42a8
commit 07c2fc0fd1
3 changed files with 28 additions and 7 deletions

12
package-lock.json generated
View File

@ -10,6 +10,7 @@
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"connect-sqlite3": "^0.9.16",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.18.2",
@ -444,6 +445,17 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"devOptional": true
},
"node_modules/connect-sqlite3": {
"version": "0.9.16",
"resolved": "https://registry.npmjs.org/connect-sqlite3/-/connect-sqlite3-0.9.16.tgz",
"integrity": "sha512-2gqo0QmcBBL8p8+eqpBETn7RgM/PaoKvpQGl8PfjEgwlr0VuMYNMxRJRrRCo3KR3fxMYeSsCw2tGNG0JKN9Nvg==",
"dependencies": {
"sqlite3": "^5.0.2"
},
"engines": {
"node": ">=0.4.x"
}
},
"node_modules/console-control-strings": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",

View File

@ -8,19 +8,20 @@
"dev": "nodemon server.js"
},
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"connect-sqlite3": "^0.9.16",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"sqlite3": "^5.1.6",
"express-session": "^1.17.3",
"passport": "^0.6.0",
"passport-google-oauth20": "^2.0.0",
"passport-instagram": "^1.0.0",
"passport-local": "^1.0.0",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"cors": "^2.8.5",
"dotenv": "^16.3.1"
"sqlite3": "^5.1.6"
},
"devDependencies": {
"nodemon": "^3.0.1"
}
}
}

View File

@ -1,6 +1,7 @@
const express = require('express');
const sqlite3 = require('sqlite3').verbose();
const session = require('express-session');
const SQLiteStore = require('connect-sqlite3')(session);
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;
const InstagramStrategy = require('passport-instagram').Strategy;
@ -91,10 +92,17 @@ app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
store: new SQLiteStore({
db: 'water_stations.db',
table: 'sessions'
}),
secret: process.env.SESSION_SECRET || 'your-secret-key',
resave: false,
saveUninitialized: false,
cookie: { secure: false } // Set to true in production with HTTPS
cookie: {
secure: false, // Set to true in production with HTTPS
maxAge: 7 * 24 * 60 * 60 * 1000 // 7 days
}
}));
app.use(passport.initialize());