From 830322a554e3209479c862c0722ab60c7946f038 Mon Sep 17 00:00:00 2001 From: Pawan Soni Date: Wed, 17 Apr 2019 20:12:00 +0530 Subject: [PATCH] exchanged express-session with cookie-session --- package-lock.json | 39 +++++++++++++++++++++++++++++++++++++++ package.json | 1 + server/index.js | 30 ++++++++++++++++++++++++------ static/sw.js | 33 ++++++++++++++++++++++++++++++++- 4 files changed, 96 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index bb730b4..29cf26a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4327,6 +4327,31 @@ "cookie-signature": "1.0.6" } }, + "cookie-session": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/cookie-session/-/cookie-session-1.3.3.tgz", + "integrity": "sha512-GrMdrU1YTQWtmVTo0Rj3peeZRMc2xJrBslFYtZcYTo+hrSLmrcf69OrRkDi84xTfylgCy2wgpRHyY4le6lE5+A==", + "requires": { + "cookies": "0.7.3", + "debug": "2.6.9", + "on-headers": "~1.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + } + } + }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -4338,6 +4363,15 @@ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==", "dev": true }, + "cookies": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz", + "integrity": "sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A==", + "requires": { + "depd": "~1.1.2", + "keygrip": "~1.0.3" + } + }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", @@ -8595,6 +8629,11 @@ "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz", "integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg==" }, + "keygrip": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz", + "integrity": "sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g==" + }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", diff --git a/package.json b/package.json index f7d996a..2097b38 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "bootstrap-vue": "^2.0.0-rc.18", "bootswatch": "^4.3.1", "cookie-parser": "^1.4.4", + "cookie-session": "^1.3.3", "cors": "^2.8.5", "cross-env": "^5.2.0", "dot-env": "0.0.1", diff --git a/server/index.js b/server/index.js index aa7405b..db6dcc4 100644 --- a/server/index.js +++ b/server/index.js @@ -3,7 +3,8 @@ const consola = require("consola"); const { Nuxt, Builder } = require("nuxt"); const cors = require("cors"); const bodyParser = require("body-parser"); -const session = require('express-session'); +// const session = require('express-session'); +const session = require("cookie-session"); const mongoose = require("mongoose"); const initDb = require("./db"); @@ -36,20 +37,37 @@ async function start() { const queryParams = { id: req.params.id }; app.render(req, res, actualPage, queryParams); }); + + + // app.get('*', (req, res) => nuxt(req, res)) + + // Sessions to create `req.session` + // app.use(session({ + // secret: 'super-secret-key', + // resave: true, + // saveUninitialized: false, + // cookie: { maxAge: 1000 * 60 * 60 } + // })); + + app.use(session({ + name : 'session', secret: 'super-secret-key', - resave: true, - saveUninitialized: false, - cookie: { maxAge: 1000 * 60 * 60 } - })); + maxAge: 1000 * 60 * 60 + })); + + + const routes = require("./routes"); app.use("/api", [cors(), bodyParser.json()], routes); - console.log('API routes: ' + routes); + console.log('API routes: ' + JSON.stringify(routes.stack)); + // console.log('Api routes', routes); + // POST `/api/logout` to log out the user and remove it from the `req.session` app.post('/api/logout', function (req, res) { diff --git a/static/sw.js b/static/sw.js index ea69899..9b19953 100644 --- a/static/sw.js +++ b/static/sw.js @@ -1 +1,32 @@ -// THIS FILE SHOULD NOT BE VERSION CONTROLLED +importScripts('https://cdn.jsdelivr.net/npm/workbox-cdn@4.1.1/workbox/workbox-sw.js') + +// -------------------------------------------------- +// Configure +// -------------------------------------------------- + +// Set workbox config +workbox.setConfig({ + "debug": false +}) + +// Start controlling any existing clients as soon as it activates +workbox.core.clientsClaim() + +// Skip over the SW waiting lifecycle stage +workbox.core.skipWaiting() + +workbox.precaching.cleanupOutdatedCaches() + +// -------------------------------------------------- +// Precaches +// -------------------------------------------------- + +// Precache assets + +// -------------------------------------------------- +// Runtime Caching +// -------------------------------------------------- + +// Register route handlers for runtimeCaching +workbox.routing.registerRoute(new RegExp('/_nuxt/(?!.*(__webpack_hmr|hot-update))'), new workbox.strategies.CacheFirst ({}), 'GET') +workbox.routing.registerRoute(new RegExp('/(?!.*(__webpack_hmr|hot-update))'), new workbox.strategies.NetworkFirst ({}), 'GET')