Skip to content

Instantly share code, notes, and snippets.

@thanhdatvo
Created April 30, 2020 20:36
Show Gist options
  • Save thanhdatvo/ab93f5a3e4deea59ba2a305707d1871e to your computer and use it in GitHub Desktop.
Save thanhdatvo/ab93f5a3e4deea59ba2a305707d1871e to your computer and use it in GitHub Desktop.
Expressjs Chained Middlewares
function authenticate(req, res, next) {
if (req.params.status === "authenticated") {
req.isAuthenticated = true
} else {
req.isAuthenticated = false
}
next();
}
function authorize(req, res, next) {
if (req.isAuthenticated == false) {
next()
return
}
if (req.params.role === "admin") {
req.redirectRoute = "dashboard"
} else if (req.params.role === "user") {
req.redirectRoute = `homepage/${req.params.userId}`
} else {
req.redirectRoute = "contact-support"
}
next();
}
app.get('/verify/:status/:role/:userId', authenticate, authorize, function (req, res) {
if(req.isAuthenticated == false){
res.status(403);
res.send('Unauthenticated. Please signup!');
return
}
res.send('Redirecting ' + req.redirectRoute);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment