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

问题描述 投票:0回答:1

我想实现一个类似于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) { 

});

但我不知道如何为我想要无需登录即可访问的路径创建过滤器...

我该怎么做?

node.js authentication
1个回答
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) { 

});
© www.soinside.com 2019 - 2024. All rights reserved.