Skip to content

Instantly share code, notes, and snippets.

@Gpx
Created December 6, 2012 11:00
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Gpx/4223687 to your computer and use it in GitHub Desktop.
Save Gpx/4223687 to your computer and use it in GitHub Desktop.
Check if user is logged in Express otherwise redirect to /login
// Get the 'backTo' value or '/' instead
var getBackTo = function (req) {
var backTo = req.session.backTo || '/';
delete req.session.backTo;
return backTo;
};
// If user is not present stop
var getUser = function (req) {
var user = req.session.user;
if (user == null) {
throw('Error');
} else {
return user;
}
};
// If user is not present redirect to login page
var getUserOrLogin = function (req, res, next) {
var user = req.session.user;
if (user == null) {
req.session.backTo = req.originalUrl;
res.redirect('/login');
} else {
req.user = user;
next();
}
};
// Set an error message and redirect
var redirectWithMessage = function (message, url, req, res) {
req.session.messages = message;
res.redirect(url);
};
// Return 'messages' value or null instead
var getMessages = function (req) {
var messages = req.session.messages || null;
delete req.session.messages;
return messages;
};
// Set an error message and redirect
var redirectWithError = function (error, url, req, res) {
req.session.errors = error;
res.redirect(url);
};
// Return 'errors' value or null instead
var getErrors = function (req) {
var errors = req.session.errors || null;
delete req.session.errors;
return errors;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment