/** * Ensure that no user is logged in before proceeding to next route middleware. * * This middleware ensures that no user is logged in. If a request is received * that is authenticated, the request will be redirected to another page (by * default to `/`). * * Options: * - `redirectTo` URL to redirect to in logged in, defaults to _/_ * * Examples: * * app.get('/login', * ensureLoggedOut(), * function(req, res) { ... }); * * app.get('/login', * ensureLoggedOut('/home'), * function(req, res) { ... }); * * app.get('/login', * ensureLoggedOut({ redirectTo: '/home' }), * function(req, res) { ... }); * * @param {Object} options * @return {Function} * @api public */ module.exports = function ensureLoggedOut(options) { if (typeof options == 'string') { options = { redirectTo: options } } options = options || {}; var url = options.redirectTo || '/'; return function(req, res, next) { if (req.isAuthenticated && req.isAuthenticated()) { return res.redirect(url); } next(); } }