@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
45 lines (42 loc) • 1.15 kB
JavaScript
/**
* 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) {
let opts;
if (typeof options === 'string') {
opts = { redirectTo: options };
}
opts = options || {};
const url = opts.redirectTo || '/';
return function (req, res, next) {
if (req.isAuthenticated && req.isAuthenticated()) {
return res.redirect(url);
}
return next();
};
};