2011-12-01 171 views
12

我正在構建一個獨立的couchdb應用程序。這些被稱爲couchapps。這個想法是,數據庫本身在端口80上提供,並返回HTML並作爲實際網站工作。這是一個非常強大的想法,我對你的代碼在你的數據庫中的新概念感到驚訝。CouchApp用戶註冊

但我在用戶註冊時遇到了一些問題。內置在couchdb中的cookie允許設置cookie,並使其很容易插入到您的網站。但是有幾件相當重要的事情遺漏了我的應用程序需要說它具有「適當的」用戶註冊系統。

  1. 沒有註冊驗證。沒有電子郵件發送,沒有驗證碼顯示。這意味着任何人都可以垃圾你的_users數據庫,並創建儘可能多的新用戶。

  2. 如果用戶忘記密碼,則無法幫助他們恢復密碼。

任何想法如何克服這些問題,而不是在一個較低的水平(不是Erlang的傢伙)進行任何硬核erlang開發?如果有人知道我是否可以使用OAuth對Twitter或GitHub帳戶進行身份驗證,並且無縫地集成了couchdb數據的處理方式(在validate_doc_update函數中),那也是非常棒的。

謝謝

回答

11

雖然內置的用戶數據庫可以工作,我不會推薦它爲你描述的工作流程。這裏有一些其他的選擇:

瀏覽器ID

我真的會推薦使用BrowserID。 IrisCouch提供了一個插件來這裏的CouchDB:

https://github.com/iriscouch/browserid_couchdb

這將走正常的註冊工作流程的照顧。

如果你想要把它更進一步,有你的用戶「相當無名氏」,你可以按照這個couchapp叫「樂居」

https://github.com/thedod/Mingle

Twitter的整合

最大的例子Ogden的「DataCouch」項目通過twitter登錄,儘管它使用一些Node外部處理器來使其工作。在這裏看到:

https://github.com/maxogden/datacouch/blob/master/processors/auth/twitterauth.js

Facebook的整合

https://github.com/ocastalabs/CouchDB-Facebook-Authentication

的OpenID

https://github.com/mcaprari/couchdb-openid


我不認爲你可以用純粹的沙發使用OAuth,一個s該文中建議:

http://bennolan.com/2011/01/11/couchdb-oath.html

所以你會得到有以下什麼Datacouch做最接近的一次。

希望這些建議有所幫助。

+0

謝謝。這幾乎是我所遇到的所有材料。而且似乎還有另一個問題(在與Max Odgen交談後),Cookie的過期時間只會持續到您的瀏覽器打開爲止......這是完全可怕的。我會接受你的答案,並希望1.2將解決這個問題。 –

+2

您可以使用從1.3開始的oauth –