ftdeveloper
ftdeveloper

Reputation: 1093

How to seperate session control instead of writing it in every routes

I am developing Node.js application with express. I am checking session in every route. But I want to separate this checking from my routes. Need idea.

Here is my route:

app.get('/Management', function(req, res) {
    if (!req.session.email) {
        return res.render(__dirname + "../../../views/management/accessdenied.jade", {
            title: 'dont have access',
            stylesheet: 'accessdenied',
            error: 'forbidden'
        });
    }
    return res.render(__dirname + "/views/index", {
        title: 'Management',
        stylesheet: 'managementindex'
    });
});

And here is my session check:

if (!req.session.email) {
    return res.render(__dirname + "../../../views/management/accessdenied.jade", {
        title: 'dont have access',
        stylesheet: 'accessdenied',
        error: 'forbidden'
    });
}

Upvotes: 0

Views: 96

Answers (1)

Chris
Chris

Reputation: 1611

Make your own middleware. This will respond to all get & post requests. You will want it at the bottom of all your other 'app.use()' calls (bodyParse, cookieParser, etc)

app.use(function(req, res, next) {
    if (!req.session.email) {
        res.render(__dirname + "../../../views/management/accessdenied.jade", {
            title: 'dont have access',
            stylesheet: 'accessdenied',
            error: 'forbidden'
        });
    } else {
        next();
    }
});

Upvotes: 2

Related Questions