2011-02-10 12 views

Respuesta

14

Con Apache CouchDB, el permiso de lectura es por base de datos, no por documento. Si un usuario puede recuperar un documento de una base de datos, el usuario también puede buscar _all_docs?include_docs=true.

escribí detalles en esta pregunta sobre CouchDB read authorization.

Hay algunos enfoques:

  1. de nivel 7 cortafuegos o proxy inverso HTTP. Esto es difícil de hacer correctamente; IMO no es factible para la mayoría. Usted debe ser muy familiarizado con el API del CouchDB para estar seguro de que cada posible consulta está bloqueada (por ejemplo _rewrite va alrededor de su filtro).

  2. Una base de datos por usuario. Esta es la solución nativa de CouchDB. Crear bases de datos es muy barato. Luego, replique los documentos que el usuario puede ver en su base de datos. El usuario necesita una contraseña en el sofá o una cuenta de OAuth.

  3. He tenido éxito recientemente con bases de datos por usuario pero también una clave única en la URL que les concede acceso inmediato. Se siente como lo que quieres, sin embargo bajo el capó estoy creando cuentas desechables con contraseñas aleatorias. El enlace va a una página pública como www.example.com/pastebin/index.html?doc_id=some_docid&secret=random_secret. Entonces javscript en el navegador leerá window.location e introduzca la contraseña en la consulta AJAX (en una cabecera de autorización). Couch otorga permiso y el usuario está contento. Desafortunadamente, esto requirió un poco de prueba y error; sin embargo, es en su mayoría simple programación web.

+0

Jason: ¿Tiene un blog? ¡Me encantaría leerlo! – Locohost

+0

¡Oh, eres Iriscouch Jason Smith! Me disculpo por no saber eso en mi último comentario: - / – Locohost

Cuestiones relacionadas