2017-01-23 35 views
1

我試圖通過身份驗證頭用下面的代碼來驗證針對CouchDB的用戶:PouchDb到CouchDB的複製與認證頭

//Business Logic - do your stuff here. 
       var db = getdatabaseInstanse(localDb); 
       var handler = db 
        .replicate 
        .from(remoteDb, { 
         filter: function (doc) { 
          return angular.isUndefined(doc._deleted) || doc._deleted !== true; 
         } 
        }); 


       handler 
        .on('complete', function (info) { 
         resolved({ 'Instans': db, 'Info': info, 'PouchDb': localDb, 'CouchDb': remoteDb }); 
        }) 
        .on('error', function (err) { 
         if (err.status !== 500) { 
          //Ignore Couch database error 500 - since it's unknown! 
          rejected({ 'Instans': db, 'Error': err, 'PouchDb': localDb, 'CouchDb': remoteDb }); 
         } 
        }); 

如何實現它在上面提到的例子。 TIA

+0

能否請你說明什麼更好的是,你正試圖問題解決? – pringi

+0

嗨,我試圖做這樣的事情... VAR處理器= DB .replicate 。從(remoteDb,{ 過濾:函數(DOC){ 回報angular.isUndefined(doc._deleted)| | doc._deleted!== true; }, header:{'authentication':'Basic abcxyz'} }); 換句話說,我試圖在開始複製之前用設置解析我的憑據! –

+0

...換句話說 - remoteDb具有已定義的用戶名/密碼,並且在複製可以開始之前我需要某種授權。 –

回答

1

您可以使用auth.username和auth.password選項,如PouchDB documentation概述。這將讓你用正確的驗證分貝:

var remoteDb = new PouchDB('http://path.to/remotedb', {auth: {username: 'user', password: 'pass'}});

順便說一句,一個簡單的過濾功能就足以在你的情況:filter: function (doc) { return !doc._deleted; }