Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Registers a function used to serialize user objects into the session.
- *
- * Examples:
- *
- * passport.serializeUser(function(user, done) {
- * done(null, user.id);
- * });
- *
- * @api public
- */
- Authenticator.prototype.serializeUser = function(fn, req, done) {
- if (typeof fn === 'function') {
- return this._serializers.push(fn);
- }
- // private implementation that traverses the chain of serializers, attempting
- // to serialize a user
- var user = fn;
- // For backwards compatibility
- if (typeof req === 'function') {
- done = req;
- req = undefined;
- }
- var stack = this._serializers;
- (function pass(i, err, obj) {
- // serializers use 'pass' as an error to skip processing
- if ('pass' === err) {
- err = undefined;
- }
- // an error or serialized object was obtained, done
- if (err || obj || obj === 0) { return done(err, obj); }
- var layer = stack[i];
- if (!layer) {
- return done(new Error('Failed to serialize user into session'));
- }
- function serialized(e, o) {
- pass(i + 1, e, o);
- }
- try {
- var arity = layer.length;
- if (arity == 3) {
- layer(req, user, serialized);
- } else {
- layer(user, serialized);
- }
- } catch(e) {
- return done(e);
- }
- })(0);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement