From b31c00704d4b277780399237770b3f969e806277 Mon Sep 17 00:00:00 2001 From: dev1 Date: Wed, 23 Nov 2022 12:55:01 -0500 Subject: [PATCH 1/2] Bugfix: Issue #181 Add dummy req.session.regenerate and req.session.save for passport 0.6.0 --- lib/framework/request.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/framework/request.js b/lib/framework/request.js index 34efac1..67c40f2 100644 --- a/lib/framework/request.js +++ b/lib/framework/request.js @@ -87,6 +87,21 @@ const properties = { } } +// dummy implementation of methods that passport 0.6.0 expects the request to have +// see issue https://github.com/jaredhanson/passport/issues/904 +const sessionProperties = { + regenerate: { + get: function () { + return (cb) => {cb()} + }, + }, + save: { + get: function () { + return (cb) => {cb()} + } + } +} + keys.forEach(function(key) { properties[key] = { get: function() { @@ -137,6 +152,8 @@ const IncomingMessageExt = require('passport/lib/http/request') exports.create = function(ctx, userProperty) { const req = Object.create(ctx.request, properties) + Object.defineProperties(req.session, sessionProperties) + Object.defineProperty(req, userProperty, { enumerable: true, get: function() { From 3ead6991f2989f9ef9c90d950465f1ca067d977a Mon Sep 17 00:00:00 2001 From: dev1 Date: Thu, 24 Nov 2022 16:31:55 -0500 Subject: [PATCH 2/2] Update to issue #181 bugfix Only add dummy regenerate and save methods if they do not already exist --- lib/framework/request.js | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/lib/framework/request.js b/lib/framework/request.js index 67c40f2..27f5a4a 100644 --- a/lib/framework/request.js +++ b/lib/framework/request.js @@ -87,21 +87,6 @@ const properties = { } } -// dummy implementation of methods that passport 0.6.0 expects the request to have -// see issue https://github.com/jaredhanson/passport/issues/904 -const sessionProperties = { - regenerate: { - get: function () { - return (cb) => {cb()} - }, - }, - save: { - get: function () { - return (cb) => {cb()} - } - } -} - keys.forEach(function(key) { properties[key] = { get: function() { @@ -152,7 +137,24 @@ const IncomingMessageExt = require('passport/lib/http/request') exports.create = function(ctx, userProperty) { const req = Object.create(ctx.request, properties) - Object.defineProperties(req.session, sessionProperties) + // add dummy implementation of methods that passport 0.6.0 expects the request to have, if not present + // see issue https://github.com/jaredhanson/passport/issues/904 + if (!req.session.regenerate) { + Object.defineProperty(req.session, "regenerate", { + enumerable: true, + get: function() { + return (cb) => {cb()} + } + }) + } + if (!req.session.save) { + Object.defineProperty(req.session, "save", { + enumerable: true, + get: function() { + return (cb) => {cb()} + } + }) + } Object.defineProperty(req, userProperty, { enumerable: true,