0

所以我正在尝试使用 http-auth 对我的 node.js 应用程序进行密码保护。我看到很多人也需要帮助,并尝试了多种方法。但现在我被困住了。密码可以正常工作,但是一旦您登录到上一个密码,就会再次弹出登录提示。我无法完全访问我的应用程序。

我的身份验证部分如下所示:

var preAuth = require('http-auth');
var basic = preAuth.basic({
    realm: "Private area",
    file: __dirname + "/htpasswd",
    //Type: "basic"
});


var server;
var app = express();
app.use(preAuth.connect(basic));

如果我添加一个

app.get('/test', function(req, res) {
    res.send("Hello from express - " + req.user + "!");
});

我可以毫无问题地访问 /test 站点,它显示“您好,来自 express - insertUsernameHere!”

但它不适用于我的应用程序。这是因为我的 express.static 吗?我对 javascript/node.js 不是很好,还在学习。

(对不起,如果我的英语让任何人不快,我知道这并不完美)

4

1 回答 1

0

您可能在指定静态文件app.use(auth.connect(basic)); 后定义。

这就是您的静态文件不受保护的原因。

确保在设置使用静态文件之前设置了授权:

app.use(preAuth.connect(basic));
app.use(express.static(path.join(__dirname, 'public')));
于 2019-01-17T14:21:49.070 回答