Skip to content

Commit

Permalink
Refactor login to use session manager.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhanson committed Oct 11, 2016
1 parent b8bf04a commit f8bad7e
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 10 deletions.
5 changes: 4 additions & 1 deletion lib/authenticator.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
/**
* Module dependencies.
*/
var SessionStrategy = require('./strategies/session');
var SessionManager = require('./sessionmgr')
, SessionStrategy = require('./strategies/session');


/**
Expand Down Expand Up @@ -30,6 +31,8 @@ function Authenticator() {
Authenticator.prototype.init = function() {
this.protocol(require('./protocol/http'));
this.framework(require('./framework/connect')());
this._sm = new SessionManager();

this.use(new SessionStrategy());
};

Expand Down
10 changes: 1 addition & 9 deletions lib/http/request.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,8 @@ req.logIn = function(user, options, done) {
if (typeof done != 'function') { throw new Error('req#login requires a callback function'); }

var self = this;
this._passport.instance.serializeUser(user, this, function(err, obj) {
this._passport.instance._sm.logIn(this, user, function(err) {
if (err) { self[property] = null; return done(err); }
if (!self._passport.session) {
self._passport.session = {};
}
self._passport.session.user = obj;
if (!self.session) {
self.session = {};
}
self.session[self._passport.instance._key] = self._passport.session;
done();
});
} else {
Expand Down
1 change: 1 addition & 0 deletions lib/middleware/authenticate.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ module.exports = function authenticate(passport, name, options, callback) {
}

info = info || {};

return passport._protocol.success.call(ctx, user, info, next);
};

Expand Down
21 changes: 21 additions & 0 deletions lib/sessionmgr.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
function SessionManager() {
this.legacy = true;
}

SessionManager.prototype.logIn = function(req, user, cb) {
req._passport.instance.serializeUser(user, req, function(err, obj) {
if (err) { return cb(err); }
if (!req._passport.session) {
req._passport.session = {};
}
req._passport.session.user = obj;
if (!req.session) {
req.session = {};
}
req.session[req._passport.instance._key] = req._passport.session;
cb();
});
}


module.exports = SessionManager;

0 comments on commit f8bad7e

Please sign in to comment.