12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /**
- * Passport initialization.
- *
- * Intializes Passport for incoming requests, allowing authentication strategies
- * to be applied.
- *
- * If sessions are being utilized, applications must set up Passport with
- * functions to serialize a user into and out of a session. For example, a
- * common pattern is to serialize just the user ID into the session (due to the
- * fact that it is desirable to store the minimum amount of data in a session).
- * When a subsequent request arrives for the session, the full User object can
- * be loaded from the database by ID.
- *
- * Note that additional middleware is required to persist login state, so we
- * must use the `connect.session()` middleware _before_ `passport.initialize()`.
- *
- * If sessions are being used, this middleware must be in use by the
- * Connect/Express application for Passport to operate. If the application is
- * entirely stateless (not using sessions), this middleware is not necessary,
- * but its use will not have any adverse impact.
- *
- * Examples:
- *
- * app.use(connect.cookieParser());
- * app.use(connect.session({ secret: 'keyboard cat' }));
- * app.use(passport.initialize());
- * app.use(passport.session());
- *
- * passport.serializeUser(function(user, done) {
- * done(null, user.id);
- * });
- *
- * passport.deserializeUser(function(id, done) {
- * User.findById(id, function (err, user) {
- * done(err, user);
- * });
- * });
- *
- * @return {Function}
- * @api public
- */
- module.exports = function initialize(passport) {
-
- return function initialize(req, res, next) {
- req._passport = {};
- req._passport.instance = passport;
- if (req.session && req.session[passport._key]) {
- // load data from existing session
- req._passport.session = req.session[passport._key];
- }
- next();
- };
- };
|