From cb2a7a1bb519b307a671dbe9310dbf95665ff63d Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Wed, 20 May 2020 16:56:43 -0700 Subject: [PATCH] Add simple session tracking By taking advantage of the express-session module. Note that we're not actually using the session for anything yet, so we haven't configured anything such as the expiration time or even which backend should be used for storing the session data (meaning the session data will just be stored in memory for now). We do add the very beginnings of a configuration file here, which for now simply has a "secret_session" key with the random data for the session manager to use. Also, we configure both the "resave" and the "saveUninitialized" properties on the session object to avoid the warnings about the deprecated values for these two properties. --- .gitignore | 1 + lmno.js | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/.gitignore b/.gitignore index fa6e5f2..f2f8bda 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules game.html +lmno-config.json diff --git a/lmno.js b/lmno.js index 64a106b..fbef78f 100644 --- a/lmno.js +++ b/lmno.js @@ -1,9 +1,35 @@ const express = require("express"); const cors = require("cors"); const body_parser = require("body-parser"); +const session = require("express-session"); + +try { + var lmno_config = require("./lmno-config.json"); +} catch (err) { + config_usage(); + process.exit(1); +} + +function config_usage() { + console.log(`Error: Refusing to run without configuration. + +Please create a file named lmno-config.json that looks as follows: + +{ + "session_secret": ""; +} + +Note: Don't use the exact text above, but instead replace the string +with what it describes: a long string of random characters.`); +} const app = express(); app.use(cors()); +app.use(session({ + secret: lmno_config.session_secret, + resave: false, + saveUninitialized: false +})); /* Load each of our game mini-apps. */ var empires = require("./empires"); -- 2.43.0