2012-03-13 3 views
2

CouchDBでWebアプリケーションを開発する最善の方法は何ですか?フロントエンドユーザーは[フォーラムなど]にログインする必要がありますか?このために、私はユーザー名/パスワードをチェックしてセッション/クッキーに保存するための認証メカニズムが必要です。FrontEnd-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://couchbuch.iriscouch.com/kassenbuch/_design/buchhaltung/index.html とここ(ソファ) http://couchbuch.iriscouch.com/_utils /document.html?kassenbuch/_design/buchhaltung もちろん、単純なJavaScriptを使ってmap/reduce関数で定義したビューをポーリングすることもできます。しかし、シンプルなサーバーサイドコードを実行するためのものは何も見つかりません。 –

+0

私の悪い私の悪いところは、私は私たちが私たちのクライアントに提供するnoSQLソリューションのためにcouchDBとmongoDBを見ていたことを知っていましたが、私はmongoDBを選択した後にのみmongoDBを探索していたので、couchDBはセットアップ。その場合、私は誰かがあなたにもっと関連性の高い答えを与えることができることを願っています。 –

+0

いいえ、それは真実ではありませんが、使用することはできますが、その性質上CouchDBとのインターフェイスにはサーバー側の言語は必要ありません。 http://couchdb.apache.org/を参照してください: '' 'CouchDBはウェブを完全に包含するデータベースです。 JSONドキュメントでデータを保存します。 HTTP経由でWebブラウザでドキュメントにアクセスします。 JavaScriptを使用してドキュメントを照会、結合、変換します。 – rekinyz

0

Couchdbがこれを処理できます。ソファレベルの認証とデータベースレベルの認証を行います。 http://wiki.apache.org/couchdb/Security_Features_Overview

基本的にすべてのユーザーを持つ_usersデータベースがあり、ユーザーを_securityドキュメントで設定してデータベースを保護できます。

ドキュメントレベルのセキュリティでは、独自の役割を果たす必要があります。私はこれが推奨されておらず、ユーザーモデルごとのデータベースがここで好まれていると言われてきました。

また https://github.com/iriscouch/browserid_couchdb

Kan.soあなたがcouchappを構築していると、いくつかのパッケージ管理をご希望の場合は、フロントエンドからユーザーを作成するためのいくつかの素晴らしいパッケージを持っているBROWSERID(ペルソナ)を使用することができます。

1

新しいフーディープロジェクトをhttp://Hood.ieでチェックアウトします。

それはCouchDBのユーザーを含むアカウントを管理するためのAPIが含まれます。

// 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は、CouchDBのログインをサポートしているフレームワークのログイン新しいNodeJSです。

私は最近、この新しい認証APIを自分のモバイルアプリに統合しました。これはとても簡単でした。明確なドキュメンテーションとデモアプリケーションのコードは優れたキックスターターでした。新しくオープンソース化されただけですが、コード成熟度とテストカバレッジは、しばらくの間は生産で使用されてきたように感じられます。開発者は非常に有益で反応性があります。

  • 拡張型サーバーAPIとオプションの角度型クライアントAPI。
  • 総合デモアプリ。
  • ローカルユーザー名/パスワード、パスワードのリセット、パスワードの更新、ユーザープロファイルの更新をサポートします。
  • ユーザーアカウントごとに任意の数のソーシャルOAuthログイン(Facebook、Twitter、Googleなど)を添付します。 300を超える認証プラグインをサポートするPassportJSを使用します。
  • ので、あなたはまだ直接CouchDBのサーバーに有意に改善して基本認証を使用してPouchDbに複製することができ、ユーザセッション あたり、他のユーザイベント
  • が一時的に長いとランダムCouchDBのユーザーを作成し
  • 通知/パスワードのメールを確認し、送信するために SendGrid APIを統合することができますセキュリティ。オプションのRedisのセッションストア
  • 包括的なテストスイートと
  • 高速かつスケーラブルな
  • 100%のクッキー無料、防止CSRF攻撃。

完全にオープンソースとMITライセンス: