如果我们想要设置 req.user,则需要将用户名提供给回调函数(即使调用代码显然在其上下文中有它)。
所以不要这样做(正如我遵循的伟大教程所说):
var express = require('express');
var app = express();
// Authenticator
app.use(express.basicAuth(function(user, pass, callback) {
var result = (user === 'testUser' && pass === 'testPass');
callback(null /* error */, result);
}));
app.get('/home', function(req, res) {
res.send('Hello World');
});
app.listen(process.env.PORT || 8080);
必须将函数更改为:
app.use(express.basicAuth(function(user, pass, callback) {
if (user === 'testUser' && pass === 'testPass') {
callback(null /* error */, user);
} else {
callback(null, null);
}
}));
对于那些想知道的人来说,是的,这意味着我们不能有一个名称是空字符串的用户(否则它将被 express 解释为 false),这似乎是一种耻辱。