5

私の目標は、ユーザーを認証せずに 1 つのデータベースを読み取れるようにすることです。このデータベースを編集するには認証が必要です。他のすべてのデータベースは、有効なユーザーに対してのみ読み取り/書き込み可能にする必要があります。また、将来作成するすべてのデータベースに設定する必要はありません。読み取り/書き込みに必要な認証がデフォルトである必要があります。

require_valid_userに設定することでこれを実行できると思っていましたtrueが、CouchDB は常にユーザー名とパスワードを要求するため、1 つのデータベースを除外する方法が必要です。このデータベースは、パブリックに対して読み取り可能で、有効なユーザーに対して書き込み可能である必要があります。

4

1 に答える 1

4

この問題は、すべてのユーザーを 1 つのデータベース (つまり /login) で認証することで回避できます。そのデータベースは公開されており、HTML ファイルが添付された設計ドキュメントが含まれています。ユーザーはこのファイルを受け取り、フォームに資格情報を入力します。jQuery.couch.js を使用して認証し、ブラウザーに Cookie を保存します。有効なログインを取得したら、userCtx オブジェクトを検査して役割を確認し、適切なデータベースにリダイレクトします。

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

設計ドキュメントの validate_doc_update キーを使用して、公開ログイン データベースを保護してください。これにより、管理者以外は何も上書きできなくなります。

お役に立てれば。

于 2013-07-06T21:21:20.433 に答える