Public 在私有数据库上重写
Public rewrites on private database
我正在创建一个单页 CouchApp,使用_attachments
直接从CouchDB 为JavaScript 应用程序提供服务。我已经为 db/_design/ddoc/_rewrite
设置了一个虚拟主机来实现这一点。
数据库中的数据只能由_users
数据库中的特定用户查看,这是通过将他们添加为db/_security
文档的成员来实现的。
我希望封装了PouchDB的单页应用程序能够控制获取数据,并通过pouchdb-authentication进行身份验证。问题出在:未认证前无法访问应用
这引出了我的问题;有没有一种方法可以将设计文档中的 _attachments
公开给未经身份验证的用户, 而无需 授予每个人访问数据库其余部分的权限?目前我正在权衡将我的应用程序存储在没有任何成员的单独数据库中,但我更愿意使用单个数据库并使用适当的权限系统来解决它。
简短的回答是否定的。您可以尝试的一些事情是:
- 在单独的 public 空数据库中创建身份验证应用程序,然后从那里重定向到您的应用程序(您必须在同一域中)。
- 在 CouchDB 之外创建身份验证应用程序并使用代理服务来自同一域的所有内容。
- 这是非常不安全和次要的但出于测试目的,您可以在应用程序中启用基本身份验证,这将为您提供一种在拒绝访问之前通过浏览器进行身份验证的方法到数据库。
我正在创建一个单页 CouchApp,使用_attachments
直接从CouchDB 为JavaScript 应用程序提供服务。我已经为 db/_design/ddoc/_rewrite
设置了一个虚拟主机来实现这一点。
数据库中的数据只能由_users
数据库中的特定用户查看,这是通过将他们添加为db/_security
文档的成员来实现的。
我希望封装了PouchDB的单页应用程序能够控制获取数据,并通过pouchdb-authentication进行身份验证。问题出在:未认证前无法访问应用
这引出了我的问题;有没有一种方法可以将设计文档中的 _attachments
公开给未经身份验证的用户, 而无需 授予每个人访问数据库其余部分的权限?目前我正在权衡将我的应用程序存储在没有任何成员的单独数据库中,但我更愿意使用单个数据库并使用适当的权限系统来解决它。
简短的回答是否定的。您可以尝试的一些事情是:
- 在单独的 public 空数据库中创建身份验证应用程序,然后从那里重定向到您的应用程序(您必须在同一域中)。
- 在 CouchDB 之外创建身份验证应用程序并使用代理服务来自同一域的所有内容。
- 这是非常不安全和次要的但出于测试目的,您可以在应用程序中启用基本身份验证,这将为您提供一种在拒绝访问之前通过浏览器进行身份验证的方法到数据库。