Şu anda test edemez, ancak, kaynakların bakarak, iki şeye dikkat edebilirsiniz:
O zaman kimlik doğrulama parametreleri ile yeni bir değere url yapılandırma seçeneğini ayarlamak gerektiğini düşünüyorum
cfg.user = params.user.name;
cfg.pass = params.user.password;
nano.config.url = cfg.url;
GÜNCELLEME:
: burada tam bir örnek
var cfg = {
host: "localhost",
port: "5984",
ssl: false
};
cfg.credentials = function credentials() {
if (cfg.user && cfg.pass) {
return cfg.user + ":" + cfg.pass + "@";
}
else { return ""; }
};
cfg.url = function() {
return "http" + (cfg.ssl ? "s" : "") + "://" + cfg.credentials() + cfg.host +
":" + cfg.port;
};
var nano = require('nano')(cfg.url()),
db = nano.use('DB_WITH_AUTH'),
docId = 'DOCUMENT_ID';
function setUserPass(user, pass) {
cfg.user = user;
cfg.pass = pass;
nano.config.url = cfg.url();
}
db.get(docId, function (e, r, h) {
if (e) {
if (e['status-code'] === 401) {
console.log("Trying again with authentication...");
setUserPass('USENAME', 'PASSWORD');
db.get(docId, function (e, r, h) {
if (e) {
console.log("Sorry, it did not work:");
return console.error(e);
}
console.log("It worked:");
console.log(r);
console.log(h);
});
return;
}
console.log("Hmmm, something went wrong:");
return console.error(e);
}
console.log("No auth required:");
console.log(r);
console.log(h);
});
Maalesef da var url'den oluşturulan yol. Birkaç olasılık denedim ve kimlik doğrulamasını üstbilgiye ekledim. – Patrick
@Patrick Ne demek istediğini anlamadım, bu yüzden ne demek istediğimi açıklamak için bir çalışma örneği ekledim. Umarım açıklığa kavuşur. –
Çok teşekkür ederim, bunu en baştan denedim. Ancak, tüm cfg kodunu yeniden yazmaktan daha kolay olan, http kimlik doğrulaması için bir kaynak buldum. Düğüm havuzuna bir çekme talebinde bulundum, bu yüzden güncellemenin yakında orada olacağını umuyoruz. – Patrick