2013-07-06 17 views
5

Amacım, kullanıcının kimliğini doğrulamak zorunda kalmadan bir veritabanını okuyabilmektir, bu veritabanını düzenlemek için kimlik doğrulaması gerekli olmalıdır. Diğer tüm veritabanları sadece geçerli kullanıcılar için okunabilir/yazılabilir olmalıdır. Ve gelecekte oluşturduğum her veritabanı için onu ayarlamak zorunda kalmak istemiyorum, gerekli olan okuma/yazma için gerekli olan kimlik doğrulaması olmalıdır.Requi_valid_user öğesini true olarak ayarlarken bir CouchDB veritabanını halk için okunabilir hale getirebilirim?

require_valid_user'u true olarak ayarlayarak bunu yapabileceğimi düşündüm, ancak şimdi CouchDB her zaman kullanıcı adı ve parola soruyor, bu yüzden bir veritabanını hariç tutmanın bir yoluna ihtiyacım var. Bu veritabanı herkes için okunabilir olmalı ve o zaman geçerli kullanıcılar için yazılabilir olmalıdır.

cevap

4

Bu sorunu, tüm kullanıcıları tek bir veritabanında (diğer bir deyişle/giriş) kimlik doğrulaması yaparak çözerim. Bu veritabanı herkese açıktır ve bir HTML dosyası ekli bir tasarım belgesi içerir. Kullanıcı bu dosyaya hizmet eder, kimlik bilgilerini bir formda doldurur ve tarayıcımda bir çerezi doğrulamak ve saklamak için jQuery.couch.js'yi kullanırım. Geçerli bir giriş yaptıktan sonra, userCtx nesnesini rollerini kontrol edip, onları uygun veritabanına yönlendirmek için incelerim.

Bu bir saldırıdır, ancak bir veritabanına giriş yapmadığınız zamanlarda CouchDB bir JSON hata iletisi yerine bir giriş sayfası sunana kadar, bulduğum tek güvenilir yöntemdir.

Genel oturum açma veritabanınızı tasarım belgesindeki bir validate_doc_update anahtarıyla koruduğunuzdan emin olun, böylece yöneticilerden hiç kimse bunun üzerine bir şey yazabilir.

Bu yardımcı olur umarım.