2013-07-06 5 views
5

私の目標は、ユーザーを認証せずに1つのデータベースを読み取れるようにすることです。このデータベースを編集するための認証が必要です。他のすべてのデータベースは、有効なユーザーに対してのみ読み取り/書き込み可能にする必要があります。また、今後作成するデータベースごとに設定する必要はなく、読み取り/書き込みに必要な認証はデフォルトにする必要があります。require_valid_userをtrueに設定している間に、CouchDBデータベースを公開用に読み取り可能にするにはどうすればよいですか?

私はrequire_valid_usertrueに設定することでこれを行うことができたと思っていますが、現在CouchDBは常にユーザー名とパスワードを要求していますので、1つのデータベースを除外する方法が必要です。このデータベースは、正当なユーザーのために一般に公開され、書き込み可能でなければなりません。

答えて

4

すべてのユーザーを1つのデータベース(つまりログイン)で認証することでこの問題を回避します。そのデータベースは公開されており、HTMLファイルを添付した設計文書を含んでいます。ユーザーはこのファイルを提供され、フォームの信用証明書を記入し、jQuery.couch.jsを使用してブラウザにCookieを認証して保存します。有効なログインを取得したら、userCtxオブジェクトを調べて役割を確認し、適切なデータベースにリダイレクトします。

これはハックですが、データベースにログインしていないときはいつでも、CouchDBがJSONエラーメッセージの代わりにログインページを提供できるようになるまでは、私が見つけた唯一の信頼できる方法です。

パブリックログインデータベースを設計文書のvalidate_doc_updateキーで保護するようにしてください。そのため、管理者以外の誰もがそれを上書きすることはできません。

これが役に立ちます。

関連する問題