From c3b8b53c6cb09036e91e29067e68b101f72daaf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kasper=20Rynning-T=C3=B8nnesen?= Date: Wed, 14 Feb 2018 13:57:34 +0100 Subject: [PATCH] Started using persistance login for admin-panel --- package-lock.json | 175 ++++++++++++++++++++++++++ package.json | 1 + server/apps/admin.js | 10 +- server/config/mongo_config.example.js | 1 + 4 files changed, 186 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 28367af0..b7ce872c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -356,6 +356,16 @@ "source-map": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" } }, + "connect": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/connect/-/connect-1.9.2.tgz", + "integrity": "sha1-QogKIulDiuWait105Df1iujlKAc=", + "requires": { + "formidable": "1.0.17", + "mime": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz" + } + }, "content-disposition": { "version": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" @@ -710,6 +720,156 @@ "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" } }, + "express-sessions": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/express-sessions/-/express-sessions-1.0.6.tgz", + "integrity": "sha1-FYFidXg3oge498ldYu3K2G2Q8ag=", + "requires": { + "express": "2.5.11", + "mongoose": "4.13.11", + "redis": "0.12.1" + }, + "dependencies": { + "async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.1.4.tgz", + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "requires": { + "lodash": "4.17.5" + } + }, + "es6-promise": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz", + "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q=" + }, + "express": { + "version": "2.5.11", + "resolved": "https://registry.npmjs.org/express/-/express-2.5.11.tgz", + "integrity": "sha1-TOjqHzY15p5J8Ou0l7aksKUc5vA=", + "requires": { + "connect": "1.9.2", + "mime": "1.2.4", + "mkdirp": "0.3.0", + "qs": "0.4.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "kareem": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-1.5.0.tgz", + "integrity": "sha1-4+QQHZ3P3imXadr0tNtk2JXRdEg=" + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + }, + "mime": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.4.tgz", + "integrity": "sha1-EbX9rynCUJJVF2uArVIClPXekrc=" + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + }, + "mongodb": { + "version": "2.2.34", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.34.tgz", + "integrity": "sha1-o09Zu+thdUrsQy3nLD/iFSakTBo=", + "requires": { + "es6-promise": "3.2.1", + "mongodb-core": "2.1.18", + "readable-stream": "2.2.7" + } + }, + "mongodb-core": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", + "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", + "requires": { + "bson": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", + "require_optional": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz" + } + }, + "mongoose": { + "version": "4.13.11", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-4.13.11.tgz", + "integrity": "sha512-OgXmFc3vzXwq4zWp41XfSBDnKZLqnBc4Kh7mwwGjBE5iWH5tfkixaPK0uFtpEuzDzUvAIg33bgniyTsmc00olA==", + "requires": { + "async": "2.1.4", + "bson": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", + "hooks-fixed": "2.0.2", + "kareem": "1.5.0", + "lodash.get": "4.4.2", + "mongodb": "2.2.34", + "mpath": "0.3.0", + "mpromise": "0.5.5", + "mquery": "2.3.3", + "ms": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "muri": "1.3.0", + "regexp-clone": "0.0.1", + "sliced": "1.0.1" + } + }, + "mquery": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-2.3.3.tgz", + "integrity": "sha512-NC8L14kn+qxJbbJ1gbcEMDxF0sC3sv+1cbRReXXwVvowcwY1y9KoVZFq0ebwARibsadu8lx8nWGvm3V0Pf0ZWQ==", + "requires": { + "bluebird": "3.5.0", + "debug": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "regexp-clone": "0.0.1", + "sliced": "0.0.5" + }, + "dependencies": { + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=" + } + } + }, + "qs": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.4.2.tgz", + "integrity": "sha1-PKxMhh43GoycR3CsI82o3mObjl8=" + }, + "readable-stream": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", + "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", + "requires": { + "buffer-shims": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "1.0.0", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "1.0.3", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + }, + "redis": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", + "integrity": "sha1-ZN92rQ/IrOuuvSoGReikj6xJGF4=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + } + } + } + }, "express-subdomain": { "version": "https://registry.npmjs.org/express-subdomain/-/express-subdomain-1.0.5.tgz", "integrity": "sha1-mQ75eUC39MKCPZWTZIt5voWKY4s=" @@ -852,6 +1012,11 @@ "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz" } }, + "formidable": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.0.17.tgz", + "integrity": "sha1-71SRSQ+UM7cF+qdyScmQKa40hVk=" + }, "forwarded": { "version": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" @@ -1211,6 +1376,11 @@ "parse-passwd": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" } }, + "hooks-fixed": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hooks-fixed/-/hooks-fixed-2.0.2.tgz", + "integrity": "sha512-YurCM4gQSetcrhwEtpQHhQ4M7Zo7poNGqY4kQGeBS6eZtOcT3tnNs01ThFa0jYBByAiYt1MjMjP/YApG0EnAvQ==" + }, "http-errors": { "version": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", @@ -1897,6 +2067,11 @@ "duplexer2": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz" } }, + "muri": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/muri/-/muri-1.3.0.tgz", + "integrity": "sha512-FiaFwKl864onHFFUV/a2szAl7X0fxVlSKNdhTf+BM8i8goEgYut8u5P9MqQqIYwvaMxjzVESsoEm/2kfkFH1rg==" + }, "natives": { "version": "https://registry.npmjs.org/natives/-/natives-1.1.0.tgz", "integrity": "sha1-6f+EFBimsux6SV6TmYT3jxY+bjE=" diff --git a/package.json b/package.json index d60ed3e8..882cc3f7 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "express-handlebars": "^3.0.0", "express-recaptcha": "^3.0.1", "express-session": "^1.15.6", + "express-sessions": "^1.0.6", "express-subdomain": "^1.0.5", "gulp": "^3.9.1", "gulp-concat": "^2.6.1", diff --git a/server/apps/admin.js b/server/apps/admin.js index 84f7d476..70616731 100644 --- a/server/apps/admin.js +++ b/server/apps/admin.js @@ -38,7 +38,15 @@ app.use(bodyParser.urlencoded({ app.use(session({ secret: mongo_db_cred.secret, resave: true, - saveUninitialized: true + saveUninitialized: true, + store: new (require('express-sessions'))({ + storage: 'mongodb', + instance: mongoose, + host: mongo_db_cred.host, + port: 27017, + collection: 'sessions', + expire: 86400 + }) })); // session secret app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions diff --git a/server/config/mongo_config.example.js b/server/config/mongo_config.example.js index dc93501f..04136292 100644 --- a/server/config/mongo_config.example.js +++ b/server/config/mongo_config.example.js @@ -3,6 +3,7 @@ var mongo_config = { secret: 'secret', users: 'users', host: 'localhost', + port: '27017', }; module.exports = mongo_config;