使用快速身份验证对用户隐藏特定的选项卡

时间:2018-09-04 11:36:45

标签: node.js express

我正在使用Node.js中的express-authentication-basic模块进行用户身份验证。

login = basic(function (challenge, callback) {
    if ((challenge.username === 'user' && challenge.password === 'test')) {
        callback(null, true);
    } else {
        callback(null, false, {
            error: 'INVALID_PASSWORD'
        });
    }
});



app.use(login); //middleware
app.use('/', routes);
app.use('/details', detailsRoutes);

我想根据用户名和密码隐藏特定的标签。

如果是显示所有标签的管理员用户名和密码。

1 个答案:

答案 0 :(得分:1)

您可以在中间件中添加if-else选项,以下示例可能会对您有所帮助

login = basic(function (challenge, callback) {
    if (challenge.username === 'user' && challenge.password === 'test') {
        callback(null, true, {
            admin: false
        });
    } else if (challenge.username === 'admin' && challenge.password === 'test') {
        callback(null, true, {
            admin: true
        });
    } else {
        callback(null, false, {
            error: 'INVALID_PASSWORD'
        });
    }
});



app.use(login); //middleware
app.use('/', routes);
app.use('/details', detailsRoutes);

和路线

if (req.authenticated && req.authentication.admin) {
    // send all tabs as this user is admin
} else if (req.authenticated) {
    // send limited tabs as user is not admin
} else {
    res.status(401).send();
}