1234567891011121314151617181920212223242526272829303132333435363738 |
- 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;
|