我有一个工作节点应用程序,我需要根据用户通过basicAuth连接到应用程序连接到不同的数据库。NodeJS express basicAuth - 如何将用户名传递给路由功能?
这里有一个例子:
// Authenticating function
var sgAuth = express.basicAuth(function(user, pass, callback){
if(config.credentials.clients[user] === undefined) {
callback(null, false);
} else {
callback(null, config.credentials.clients[user].password == pass);
}
});
// This function needs to know what user has authenticated
function putEvents(req, res) {
//How do I know what user authenticated in this request?
var authUser = ???;
var table = getUserTable(authUser);
...
}
app.post('/put', sgAuth, putEvents);
在sgAuth存储的用户名来一些变种肯定不会工作,因为可以有来自不同用户的许多传入连接,所以你不能保证其相同的用户, 对?该信息是否可以以某种方式从请求标题中检索?
卫生署,我从字面上只是注意到我应该返回用户名! :)'callback(null,config.credentials.clients [user] .password == pass?user:false)' –
请问utils.pause的目的是什么? –
@KatyaS [它似乎是](https://github.com/senchalabs/connect/blob/2.12.0/lib/utils.js#L239-L266)向后兼容['readable.pause()' ](https://github.com/senchalabs/connect/blob/2.12.0/lib/utils.js#L239-L257),这可以防止'req'在等待时传输'data'(任何主体内容) '回调'。 –