我有一个简单的Node.js应用程序,在这里我正在探索basic_auth npm模块的使用。这个想法是通过简单的身份验证来保护一条路由及其内容。 以下是我的应用程序中的代码段。
const basicAuth = require('basic-auth');
var auth = function(req, res, next) {
console.log('auth function');
function unauthorized(res) {
res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
return res.send(401);
};
const user = basicAuth(req); //Incoming form with name and pass properties
if (!user || !user.name || !user.pass) {
return unauthorized(res);
}
// authentication properties
const name = "foo";
const passcode = "123456";
if (user.name === name && user.pass === passcode) {
return next();
}
return unauthorized(res);
};
app.get('/protectedfile', auth, async function(req, res, next) {
try {
res.sendfile('./public/boo.html');
} catch (error) {
next(error);
}
});
从浏览器“基本身份验证”模块访问此路由时,模块会弹出一个询问用户名和密码的弹出窗口。有没有一种方法可以限制只询问一个属性而不是仅询问用户名?