2017-01-23 9 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

Привет, Я пытаюсь сделать что-то вроде этого ... вара Обработчика = дб .replicate .from (remoteDb, { фильтра: функция (док) { возвращения angular.isUndefined (doc._deleted) | | doc._deleted! == true; }, header: {'authentication': 'Basic abcxyz'} }); Другими словами, я пытаюсь проанализировать мои учетные данные с настройками перед началом репликации! –

+0

... другими словами - у remoteDb определено имя пользователя/пароль, и из-за этого мне нужна какая-то авторизация до начала репликации. –

ответ

0

Как я понял, вам нужно создать remoteDb экземпляр с параметрами auth. Или разместить имя пользователя и пароль в URL, как http://username:[email protected]

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; }