У меня есть приложение рабочего узла, где мне нужно подключиться к различным БД на основе того, что пользователь подключается к приложению через 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 в какой-то вар, конечно, не будет работать, потому что может быть много входящих соединений от различных пользователей, так что вы не можете гарантировать, что его тот же пользователь , правильно? Может ли эта информация быть извлечена из заголовка запроса каким-то образом?
Doh, я буквально просто заметил, что я должен возвращать имя пользователя! :) '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' от потоковой передачи данных (любого содержимого тела) во время ожидания «обратный вызов». –