From 8918429388bb26173ca6890c4500c6ad5a506b37 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Fri, 21 Aug 2020 23:26:17 +0200 Subject: [PATCH] Use express-sessions --- packages/medusa/package.json | 5 ++-- packages/medusa/src/loaders/express.js | 17 ++++++++---- packages/medusa/yarn.lock | 37 +++++++++++++++++--------- 3 files changed, 40 insertions(+), 19 deletions(-) diff --git a/packages/medusa/package.json b/packages/medusa/package.json index 4abfd86321..4e65706cdf 100644 --- a/packages/medusa/package.json +++ b/packages/medusa/package.json @@ -50,13 +50,13 @@ "body-parser": "^1.19.0", "bull": "^3.12.1", "chokidar": "^3.4.2", - "client-sessions": "^0.8.0", + "connect-redis": "^5.0.0", "cookie-parser": "^1.4.4", "core-js": "^3.6.5", "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", - "express-session": "^1.17.0", + "express-session": "^1.17.1", "fs-exists-cached": "^1.0.0", "glob": "^7.1.6", "joi-objectid": "^3.0.1", @@ -70,6 +70,7 @@ "passport-jwt": "^4.0.0", "passport-local": "^1.0.0", "randomatic": "^3.1.1", + "redis": "^3.0.2", "resolve-cwd": "^3.0.0", "winston": "^3.2.1" }, diff --git a/packages/medusa/src/loaders/express.js b/packages/medusa/src/loaders/express.js index aa4d127700..abebf6b14f 100644 --- a/packages/medusa/src/loaders/express.js +++ b/packages/medusa/src/loaders/express.js @@ -1,11 +1,16 @@ import express from "express" -import session from "client-sessions" +import session from "express-session" import cookieParser from "cookie-parser" import morgan from "morgan" +import redis from "redis" +import createStore from "connect-redis" import config from "../config" export default async ({ app }) => { + const RedisStore = createStore(session) + const redisClient = redis.createClient(config.redisURI) + app.set("trust proxy", 1) app.use( morgan("combined", { @@ -15,13 +20,15 @@ export default async ({ app }) => { app.use(cookieParser()) app.use( session({ + store: new RedisStore({ client: redisClient }), + resave: true, + saveUninitialized: true, cookieName: "session", + proxy: true, secret: config.cookieSecret, - duration: 24 * 60 * 60 * 1000, - activeDuration: 1000 * 60 * 5, cookie: { - httpOnly: true, - secureProxy: process.env.NODE_ENV === "production", + secure: process.env.NODE_ENV === "production", + maxAge: 10 * 60 * 60 * 1000, }, }) ) diff --git a/packages/medusa/yarn.lock b/packages/medusa/yarn.lock index 6cf8f4af0b..b35d8fd16f 100644 --- a/packages/medusa/yarn.lock +++ b/packages/medusa/yarn.lock @@ -2121,6 +2121,11 @@ configstore@^3.0.0: write-file-atomic "^2.0.0" xdg-basedir "^3.0.0" +connect-redis@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/connect-redis/-/connect-redis-5.0.0.tgz#68fe890117e761ee98e13a14b835338bd6bf044c" + integrity sha512-R4nTW5uXeG5s6zr/q4abmtcdloglZrL/A3cpa0JU0RLFJU4mTR553HUY8OZ0ngeySkGDclwQ5xmCcjjKkxdOSg== + console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -2403,7 +2408,7 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -denque@^1.1.0: +denque@^1.1.0, denque@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf" integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ== @@ -2799,10 +2804,10 @@ expect@^25.5.0: jest-message-util "^25.5.0" jest-regex-util "^25.2.6" -express-session@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.0.tgz#9b50dbb5e8a03c3537368138f072736150b7f9b3" - integrity sha512-t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg== +express-session@^1.17.1: + version "1.17.1" + resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.17.1.tgz#36ecbc7034566d38c8509885c044d461c11bf357" + integrity sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q== dependencies: cookie "0.4.0" cookie-signature "1.0.6" @@ -4596,13 +4601,6 @@ medusa-core-utils@^1.0.0-alpha.3: "@hapi/joi" "^16.1.8" joi-objectid "^3.0.1" -medusa-interfaces@^0.1.27: - version "0.1.27" - resolved "https://registry.yarnpkg.com/medusa-interfaces/-/medusa-interfaces-0.1.27.tgz#e77f9a9f82a7118eac8b35c1498ef8a5cec78898" - integrity sha512-FVRyD85aBCPon+itf0cgTc1/lQXxHcMXGWGF8fIMzcoVj8xqSjculwZmY4GH4EtKhv3X3+DGe0BsIMbiW31unA== - dependencies: - mongoose "^5.8.0" - medusa-test-utils@^1.0.0-alpha.3: version "1.0.0-alpha.3" resolved "https://registry.yarnpkg.com/medusa-test-utils/-/medusa-test-utils-1.0.0-alpha.3.tgz#162995e11f96a7fc02d0863fa6a11f511926979e" @@ -5669,6 +5667,11 @@ redis-commands@1.5.0: resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785" integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg== +redis-commands@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.6.0.tgz#36d4ca42ae9ed29815cdb30ad9f97982eba1ce23" + integrity sha512-2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ== + redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" @@ -5681,6 +5684,16 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" +redis@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/redis/-/redis-3.0.2.tgz#bd47067b8a4a3e6a2e556e57f71cc82c7360150a" + integrity sha512-PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ== + dependencies: + denque "^1.4.1" + redis-commands "^1.5.0" + redis-errors "^1.2.0" + redis-parser "^3.0.0" + regenerate-unicode-properties@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"