2012-03-25 3 views
4

Ich möchte einen Tipp bekommen, wie ich die Benutzerdaten für meine CouchDB-Anwendung strukturiere.Wie kann ich den Zugriff einer CouchApp auf CouchDBs _user_Tabelle begrenzen?

Hier ist, was wir bauen: Wir erstellen eine Suite von Anwendungen (meist unter Nutzung der Video API von HTML5), die Menschen auf verschiedene Fähigkeiten trainieren. Wir beginnen mit ein paar einfachen Videovorträgen, gekoppelt mit interaktiven Aktivitäten. Wir möchten den Fortschritt einzelner Benutzer speichern und in naher Zukunft möchten wir einige Minikurse erstellen, die Benutzer in kleinen und großen Gruppen durchführen. Mehrere Benutzer würden an der gleichen Aktivität entweder live (wie Google Docs) oder über längere Zeit (wie ein Wiki) teilnehmen.

Mein Anliegen ist mit privaten Benutzerdaten. Letztendlich wäre es für uns und den Nutzer das Einfachste, sich mit ihrer E-Mail-Adresse und einem Passwort anzumelden. Aber in CouchDBs _user-Datenbank ist der Lesezugriff auf die Daten im Wesentlichen öffentlich, und ich möchte lieber nicht alle E-Mail-Adressen meines Benutzers veröffentlichen. Wie man diese E-Mail-Adressen privat macht, ist meine größte Sorge. Außerdem wäre es schön, wenn alle Benutzerdaten privat sein könnten, es sei denn, der Benutzer möchte sie veröffentlichen.

Ich habe gedacht, ein paar Optionen, und durch diesen Artikel und viele andere auf dem Wiki lesen: http://wiki.apache.org/couchdb/PerDocumentAuthorization

ich wirklich noch nicht zu etwas gelehnt, und würde ein paar Ratschläge lieben.

Antwort

2

In der bald erscheinenden CouchDB-1.2.0 können Dokumente in der _users-Datenbank nur von den jeweiligen authentifizierten Benutzern und Administratoren gelesen werden.

+0

Wahrheit ?! Wenn ich also als bestimmter Benutzer angemeldet bin, kann ich die Daten anderer Benutzer nicht lesen? – Costa

+0

Ja, aber nur für _users-Datenbank. –

+0

Gerade getestet, funktioniert wirklich sehr gut. Benutzer können POST abrufen und (wahrscheinlich) ihr eigenes _user-Dokument löschen, aber nicht einmal das eines anderen lesen. Wenn sie das Dokument eines anderen bekommen, werden sie in der Antwort "vermisst". Der einzige Hinweis, dass andere Benutzer überhaupt existieren, ist der doc_count in der _user db. Vielen Dank Marcello! – Costa

Verwandte Themen