2017-01-23 3 views
1

ich mit dem folgenden Code einen Benutzer gegen eine CouchDB über Auth-Header zu authentifizieren versuchen:PouchDb zu CouchDB-Replikation mit Authentication Header

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

Wie kann ich es in der oben genannte Beispiel implementieren. TIA

+0

Können Sie bitte besser angeben, was das Problem ist, dass Sie versuchen, lösen? – pringi

+0

Hallo, ich versuche, so etwas zu tun ... var handler = db .replicate .ab (remotedb, { Filter: function (doc) { return angular.isUndefined (doc._deleted) | | doc._deleted! == true; }, header: {'Authentifizierung': 'Basic abcxyz'} }); Mit anderen Worten, ich versuche, meine Anmeldeinformationen mit den Einstellungen zu analysieren, bevor Sie die Replikation starten! –

+0

... mit anderen Worten - die remoteDb hat einen Benutzernamen/ein Passwort definiert und aufgrund dessen brauche ich eine Art von Autorisierung, bevor die Replikation starten kann. –

Antwort

1

können Sie die auth.username und auth.password Optionen verwenden, wie sie in den PouchDB documentation skizzieren. Dies würde Ihnen eine db mit der korrekten Authentifizierung erhalten:

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

By the way, eine einfachere Filterfunktion würde in Ihrem Fall genügen: filter: function (doc) { return !doc._deleted; }