function SessionManager(options, serializeUser) {
|
|
if (typeof options == 'function') {
|
|
serializeUser = options;
|
|
options = undefined;
|
|
}
|
|
options = options || {};
|
|
|
|
this._key = options.key || 'passport';
|
|
this._serializeUser = serializeUser;
|
|
}
|
|
|
|
SessionManager.prototype.logIn = function(req, user, cb) {
|
|
var self = this;
|
|
this._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[self._key] = req._passport.session;
|
|
cb();
|
|
});
|
|
}
|
|
|
|
SessionManager.prototype.logOut = function(req, cb) {
|
|
if (req._passport && req._passport.session) {
|
|
delete req._passport.session.user;
|
|
}
|
|
cb && cb();
|
|
}
|
|
|
|
|
|
module.exports = SessionManager;
|