2016-05-14 20 views
0

Wie kann ich mich gleichzeitig für mehrere Datenbanken mit Couchbase Sync Gateway authentifizieren?Authentifizierung für mehrere Datenbanken im couchbase Sync-Gateway

Ich entwickle eine mobile App, in der ich pouchdb verwende, das über couchbase sync gateway mit einem couchbase Server synchronisiert. Ich muss Datenbanken synchronisieren, die synchronisiert werden sollen: "Nachrichten" und "Profile".

Die Synchronisierung funktioniert wirklich gut, aber ich habe ein Problem: Ich kann nur für eine Datenbank zur gleichen Zeit authentifizieren, aber nicht für beide gleichzeitig: Ich benutze benutzerdefinierte Authentifizierung wie beschrieben here, die durch den Aufruf der "/database1/_session "Endpunkt. Dies gibt dann einen Cookie zurück, der mich für die Datenbank 1 anmeldet. Wenn ich nun auch die zweite Datenbank synchronisieren will, rufe ich "/ database2/_session" an, wodurch der erste Cookie überschrieben wird, dh ich bin nun in der Lage die zu synchronisieren zweite Datenbank, aber nicht mehr die erste.

Gibt es eine Möglichkeit, die Authentifizierung für mehr als eine Datenbank zu aktivieren? Gibt es eine Möglichkeit, globale Benutzer zu erstellen, d. H. Benutzer, die nicht nur für eine Datenbank gültig sind? Oder gibt es einen anderen Weg, dieses Problem zu lösen?

Vielen Dank im Voraus!

Antwort

0

ok, nach Stunden versucht, Proxies zu schreiben, die die Cookies usw. manipulieren ich eine viel einfachere Lösung gefunden:

In meiner Server-Anwendung, die ich für alle Datenbanken ein Token als Passwort für den Benutzer festlegen, welche Ich kann die App bei der Anmeldung senden. Die App kann dann einfach die http-Standardauthentifizierung verwenden:

this.db.sync(this.cfg.couchbase + 'messages', { 
    live: true, 
    retry: true, 
    ajax: { 
     headers: { 
      'Authorization': 'Basic ' + btoa(this.userID + ':' + token) 
     } 
    } 
    }).on('change', this.changed.bind(this)) 
    .on('error', err => console.error(err)); 
});