我正在使用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);
我想根据用户名和密码隐藏特定的标签。
如果是显示所有标签的管理员用户名和密码。
答案 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();
}