Nodejs Web应用程序身份验证允许匿名或绕过授权过滤器?

时间:2013-10-30 20:15:52

标签: node.js authentication

我想实现类似于asp.net mvc的allowanonymous属性的身份验证逻辑。

在节点应用程序中,我有这样的代码

var authChecker = function(req, res, next){
if (req.session.user 
    && req.session.user.loggedIn) {
    next();
}
else {
    res.redirect('/login');
}   
}
app.use(authChecker);

//this path should be allowed for anonymous access
app.get('/public', function(req, res) { 

});

//this path is checked globally
app.get('/private', function(req, res) { 

});

但是我不知道如何为我想要通过登录访问的路径创建一个过滤器...

我该怎么做?

1 个答案:

答案 0 :(得分:0)

而不是全局use authChecker,而只是在您想要保护的每条路线中使用它。

var authChecker = function(req, res, next){
if (req.session.user 
    && req.session.user.loggedIn) {
    next();
}
else {
    res.redirect('/login');
}   
}


//this path should be allowed for anonymous access
app.get('/public', function(req, res) { 

});

//this path is checked globally
app.get('/private', authChecker, function(req, res) { 

});