2012-03-13 37 views
2

使用CouchDB開發Web應用程序的最佳方法是什麼?前端用戶必須登錄[例如論壇]?爲此,我需要一些驗證機制來檢查用戶名/密碼並將它們存儲在會話/ cookie中。使用CouchDB進行前端登錄

我如何才能意識到在CouchDB中?有沒有辦法直接在沙發上運行服務器端代碼?我是否需要像node.js或php解釋器這樣的其他軟件組件?

非常感謝。

回答

0

儘管我對couchDB沒有直接的經驗,但據我所知它是一個數據庫,這意味着你肯定會需要一種服務器端語言來與瀏覽器連接。在這種情況下,Node.js和php是可能的選擇(儘管我認爲couchdb對node.js有非常好的支持,儘管我可能弄錯了)。無論哪種方式,這裏有一個可能的設置node.js內:http://artem.posterous.com/nodejs-authentication-with-couchdb-and-expres

+0

感謝您的回覆。 CouchDB可以直接提供HTML並通過其內置顯示和列表功能自行構建完整的應用程序。這個(沙發) http: /document.html?kassenbuch/_design/buchhaltung 當然,您可以輪詢視圖,您已經通過簡單的JavaScript定義了map/reduce-functions。但我找不到任何運行簡單的服務器端代碼。 – 2012-03-13 12:51:07

+0

我的糟糕之處在於,我知道我們研究了couchDB和mongoDB,以便爲我們的客戶提供我們的noSQL解決方案,儘管我只是在選擇完成後探索mongoDB的一部分,所以我認爲couchDB非常類似於建立。在這種情況下,我希望有人能夠給你一個更相關的答案。 – 2012-03-13 12:57:36

+0

不,這不是真的,你可以使用,但鑑於它的性質,你不需要任何服務器端語言來與CouchDB接口。請參閱http://couchdb.apache.org/:'''CouchDB是完全包含網絡的數據庫。用JSON文檔存儲數據。使用您的網絡瀏覽器通過HTTP訪問您的文檔。用JavaScript查詢,合併和轉換您的文檔。''' – rekinyz 2012-07-19 15:30:06

0

Couchdb可以爲您處理。它將進行沙發級別的認證和數據庫級別的認證。 http://wiki.apache.org/couchdb/Security_Features_Overview

基本上有一個_users數據庫擁有所有用戶,您可以在_security文檔中設置用戶以保護數據庫。

對於文檔級別的安全性,您必須扮演您自己的角色。我被告知這不被推薦,並且數據庫每個用戶模型在這裏受到青睞。

您還可以使用BROWSERID(女神) https://github.com/iriscouch/browserid_couchdb

Kan.so擁有從前端創建用戶,如果你正在建設一個couchapp,想一些軟件包管理一些不錯的包。

1

你現在想看看新的帽衫項目http://Hood.ie

它包括一個API來管理CouchDB的用戶帳戶,包括:

// sign up 
hoodie.account.signUp('[email protected]', 'secret'); 

// sign in 
hoodie.account.signIn('[email protected]', 'secret'); 

// sign out 
hoodie.account.signOut(); 

// change password 
hoodie.account.changePassword('currentpassword', 'newpassword'); 

// change username 
hoodie.account.changeUsername('currentpassword', 'newusername'); 

// reset password 
hoodie.account.resetPassword('[email protected]'); 

// destroy account and all its data 
hoodie.account.destroy(); 

// find out who the currently logged in user is (returns undefined if none) 
hoodie.account.username; 

和事件......

// user has signed up (this also triggers the authenticated event, see below) 
hoodie.account.on('signup', function (user) {}); 

// user has signed in (this also triggers the authenticated event, see below) 
hoodie.account.on('signin', function (user) {}); 

// user has signed out 
hoodie.account.on('signout', function (user) {}); 

// user has re-authenticated after their session timed out (this does _not_ trigger the signin event) 
hoodie.account.on('authenticated', function (user) {}); 

// user's session has timed out. This means the user is still signed in locally, but Hoodie cannot sync remotely, so the user must sign in again 
hoodie.account.on('unauthenticated', function (user) {}); 
2

Superlogin是一個新的登錄的NodeJS框架,支持CouchDB的登錄。

我最近將這個新的身份驗證API集成到了我的一個移動應用程序中,這很容易做到。明確的文檔和演示應用程序代碼是非常出色的啓動器。儘管只有新開源代碼,但代碼成熟度和測試覆蓋率感覺它已被用於生產一段時間。開發人員一直非常樂於助人並且很有幫助

  • 廣泛的服務器API和可選的Angular客戶端API。
  • 全面的演示應用程序。
  • 支持本地用戶名/密碼,密碼重置,密碼更新,用戶配置文件更新。
  • 爲每個用戶帳戶添加任意​​數量的社交OAuth登錄(Facebook,Twitter,Google等)。使用支持超過300個身份驗證插件的PassportJS
  • 可以整合SendGrid API驗證電子郵件和發送每用戶會話 其他用戶的事件通知
  • 生成臨時長和隨機CouchDB的用戶名/密碼,所以你仍然可以複製到PouchDb使用基本身份驗證直接向CouchDB的服務器,但有顯著改善安全。
  • 100%免費的餅乾,防止CSRF攻擊
  • 快速,可擴展的可選Redis的會話存儲
  • 綜合測試套件。

完全開源的,MIT許可證: