2015-05-04 64 views
3

我使用PouchDB身份驗證插件,我喜歡它。PouchDB身份驗證:創建新的CouchDB用戶

但是,我對註冊過程有點困惑,也許我沒有以正確的方式使用它。我用它在我的CouchDB數據庫中創建新用戶,但我不明白爲什麼它與特定數據庫相關聯?由於我自己的特定數據庫之前創建CouchDB的用戶,我必須使用一個虛擬的數據庫中創建新用戶:

// Create or get a database on the CouchDB server to further create a new user 
var remoteDB = new PouchDB('http://169.254.197.198:5984/dummy'); 

// Signup to this db in order to create new user in the CouchDB server 
remoteDB.signUp(document.register.username.value, 
    document.register.password1.value).then(function (reponse){ 
}).then(function (reponse) { 
    // handle response 
}).catch(function (error) { 
    // handle error 
}); 

問題:有沒有辦法獨立數據庫中創建一個新用戶?

回答

8

這是pouchdb認證中的一個設計缺陷。從技術上講,您的用戶是相對於整個CouchDB服務器全局定義的,但pouchdb-authentication會嘗試通過將自己附加到鏈接到單個CouchDB數據庫的PouchDB對象來簡化操作。

最簡單的事情,如果你想繼續使用pouchdb認證,是的,要使用虛擬數據庫。對於那個很抱歉;我無法想出一個更好的系統。 :/

+0

好的,謝謝!只是想知道我是否錯過了一些東西。 – hhh

+0

嘿,諾蘭!只是想知道:是否存在一些安全問題或類似的東西,禁止PouchDB使用如下方法:PouchDB.signUp()會觸發對http:// {my-couchdb-host} /_users/org.couchdb.user的PUT請求:{用戶名}?現在我將使用虛擬數據庫策略,但是這真的讓我感覺不錯...... = / –