虽然这是一个旧帖子,但我刚遇到了同样的问题。我正在使用http-auth包来限制公共目录中文件夹的访问。
当请求受保护的目录时,中间件运行得很好(get /protectedFolder 显示身份验证提示),但是当直接请求文件时(get /protectedFolder/file.txt 显示file.txt的内容)它会跳过文件。
我通过改变中间件的顺序来解决了这个问题,我最初的顺序是
app.use('/protected', express.static(path.join(__dirname, '../../../protected')));
app.use('/protected', auth.connect(basic), (req, res, next) => {
next();
});
但正确的顺序应该是:
app.use('/protected', auth.connect(basic), (req, res, next) => {
next();
});
app.use('/protected', express.static(path.join(__dirname, '../../../protected')));
我希望这能对某些人有所帮助。