8

バックグラウンド

現在、ユーザーからの永続的で重要な情報を保存するcouchDB / couchappを使用してアプリを構築しようとしていますが、couchappを使用したユーザーのサインアップに必要な手順に固執しています。

基本的に、私がやりたいのは、ユーザーが私のアプリを使用するためのアカウントを登録するために使用できる簡単なサインアップフォームを用意することです。これには、couchdb _usersデータベースに新しいユーザーを作成し、新しいユーザーにデータベース管理者の役割を割り当てた新しいデータベースを作成する必要があります。

サーバー管理者の資格情報が必要なものすべて。

理想的には、関数の1つを使用して電話をかけられるようにしたいと思いますがjquery.couch.js、それを行うための安全な方法はないようです。(またはありますか??)

質問

このタスクを中間層ソフトウェアなどにオフロードするための最も効率的で安全な方法は何ですか?

効率的とは、ユーザーにとって必要な手順が最小限であることを意味しますが、必ずしも私にとっては最小限の手間である必要はありません。

今のところ、サインアップリクエストを受信する別のnode.jsサーバーをセットアップしました。私のcouchDBサーバーの管理者クレデンシャルは、想定されるプライベート変数としてノードserver.jsファイルに保存されます。次に、を使用してdb作成リクエストをcouchDBにPOSTしcouch-clientます。

私はここであまりにも多くの(潜在的に安全でない)フープを飛び越えていますか?安全なサインアッププロセスを確実にするためのより良い方法はありますか?

ありがとう。

4

2 に答える 2

4

データベースを作成してデータベース管理者を割り当てるには、管理者ユーザーが必要です。

ドミニクの答えは素晴らしいです。ただし、別の方法としては、直接の cupapp アーキテクチャを維持し、ユーザーとソファのチェーンの外部で管理コードを実行することもできます。

たとえば、NodeJS では、管理者として CouchDB に接続します。クエリ/_users/_changes?feed=continuous&include_docs=true。ユーザーが作成されると、リアルタイムでデータイベントを受け取ります。新しいユーザーが表示されたら、データベースを作成し、それらを管理者として割り当てます。

クライアント コードは、新しいデータベースをポーリングできます。または、クライアントはCOMET フィード/_usersを介してクエリを実行することもできます。_changesどちらの方法でも、アカウントが設定されていることをブラウザが認識したら、UI でユーザーに表示できます。

プロキシ (3 層アーキテクチャ) は優れています。彼らにできないことは何もありません。ただし、次の 2 つの理由から、「外部エージェントを使用した CouchDB」のアーキテクチャを好むことがよくあります。

  1. 簡単です。1 つの Web サーバーがあります。ユーザーは CouchDB に接続します。CouchDB に接続します。すべてがデータベースにあります。構成と保守の問題が少なくなります。
  2. 柔軟です。外部クライアントは任意の言語で作成でき、任意のサーバーから実行できます。すべてを実行する 1 つの大きなアプリを作成するか、それぞれ 1 つのタスクに集中する多くの小さなアプリを作成します (たとえば、新しいデータベースの作成、パスワードを紛失した場合のユーザーへのメール送信、データベースが大きすぎる場合の通知など)。
于 2011-03-15T03:48:31.363 に答える
3

あなたが説明している方法でnode.jsを使用しました。PHP などのミドルウェアを使用して MySQL と通信するのと同じです。CouchDB 用の API と同様に堅牢ですが、AJAX を必要とせずにコンテンツを提供できるように、途中で別のものを使用することをお勧めします。(特に、単一のエンティティまたはエンティティのリストよりも複雑なものが必要な場合)

直接 CouchApp を使用することにした場合は、プロキシ サーバーを使用して、HTTPS 要求を CouchDB サーバー自体にルーティングする必要があります。( NginxApacheは、このユース ケースの一般的な例です) それを使用できない場合は、クライアント側に暗号化のレイヤーを追加することに関する wikiの記事があります。ネイティブ SSL サポートが v1.1 で追加されることをwikiで知りました(ソースのトランクでサポートされています)。

(ちなみに、これらの記事はすべて、CouchDB Wiki の「ハウツー ガイド」で見つけたものです)

于 2011-03-15T00:56:26.090 に答える