You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

43 lines
1.1 KiB

/**
* 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();
}
}