Skip to content

Commit

Permalink
Remove use of req._passport.session from SessionStrategy.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhanson committed Sep 23, 2021
1 parent 862a45e commit 6861724
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 35 deletions.
2 changes: 1 addition & 1 deletion lib/authenticator.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function Authenticator() {
*/
Authenticator.prototype.init = function() {
this.framework(require('./framework/connect')());
this.use(new SessionStrategy(this.deserializeUser.bind(this)));
this.use(new SessionStrategy({ key: this._key }, this.deserializeUser.bind(this)));
this._sm = new SessionManager({ key: this._key }, this.serializeUser.bind(this));
};

Expand Down
7 changes: 4 additions & 3 deletions lib/strategies/session.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ function SessionStrategy(options, deserializeUser) {

Strategy.call(this);
this.name = 'session';
this._key = options.key || 'passport';
this._deserializeUser = deserializeUser;
}

Expand Down Expand Up @@ -47,8 +48,8 @@ SessionStrategy.prototype.authenticate = function(req, options) {

var self = this,
su;
if (req._passport.session) {
su = req._passport.session.user;
if (req.session[this._key]) {
su = req.session[this._key].user;
}

if (su || su === 0) {
Expand All @@ -60,7 +61,7 @@ SessionStrategy.prototype.authenticate = function(req, options) {
this._deserializeUser(su, req, function(err, user) {
if (err) { return self.error(err); }
if (!user) {
delete req._passport.session.user;
delete req.session[self._key].user;
} else {
// TODO: Remove instance access
var property = req._passport.instance._userProperty || 'user';
Expand Down
9 changes: 5 additions & 4 deletions test/authenticator.middleware.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -278,8 +278,9 @@ describe('Authenticator', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.next(function(err) {
error = err;
Expand All @@ -298,8 +299,8 @@ describe('Authenticator', function() {
});

it('should maintain session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.equal('123456');
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.equal('123456');
});
});

Expand Down
18 changes: 10 additions & 8 deletions test/strategies/session.pause.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate({ pauseStream: true });
});
Expand All @@ -53,8 +54,8 @@ describe('SessionStrategy', function() {
});

it('should maintain session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.equal('123456');
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.equal('123456');
});

it('should pause request', function() {
Expand Down Expand Up @@ -95,8 +96,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate({ pauseStream: true });
});
Expand All @@ -114,8 +116,8 @@ describe('SessionStrategy', function() {
});

it('should remove user from session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.be.undefined;
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.be.undefined;
});

it('should pause request', function() {
Expand Down
44 changes: 25 additions & 19 deletions test/strategies/session.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ describe('SessionStrategy', function() {
request = req;

req._passport = {};
req._passport.session = {};
req.session = {};
req.session['passport'] = {};
})
.authenticate();
});
Expand Down Expand Up @@ -58,8 +59,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate();
});
Expand All @@ -74,8 +76,8 @@ describe('SessionStrategy', function() {
});

it('should maintain session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.equal('123456');
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.equal('123456');
});
});

Expand All @@ -97,8 +99,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = 0;
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = 0;
})
.authenticate();
});
Expand All @@ -113,8 +116,8 @@ describe('SessionStrategy', function() {
});

it('should maintain session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.equal(0);
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.equal(0);
});
});

Expand All @@ -136,8 +139,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate();
});
Expand All @@ -151,8 +155,8 @@ describe('SessionStrategy', function() {
});

it('should remove user from session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.be.undefined;
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.be.undefined;
});
});

Expand All @@ -175,8 +179,9 @@ describe('SessionStrategy', function() {
req._passport = {};
req._passport.instance = {};
req._passport.instance._userProperty = 'currentUser';
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate();
});
Expand Down Expand Up @@ -213,8 +218,9 @@ describe('SessionStrategy', function() {

req._passport = {};
req._passport.instance = {};
req._passport.session = {};
req._passport.session.user = '123456';
req.session = {};
req.session['passport'] = {};
req.session['passport'].user = '123456';
})
.authenticate();
});
Expand All @@ -229,8 +235,8 @@ describe('SessionStrategy', function() {
});

it('should maintain session', function() {
expect(request._passport.session).to.be.an('object');
expect(request._passport.session.user).to.equal('123456');
expect(request.session['passport']).to.be.an('object');
expect(request.session['passport'].user).to.equal('123456');
});
});

Expand Down

0 comments on commit 6861724

Please sign in to comment.