Pip*_*ipo 2 database authorization couchdb backend multi-user
我从头开始创建CMS,并决定使用CouchDB作为我的数据库解决方案.对于我的CMS,我需要各种帐户,当然还有不同的用户角色(管理员,作者,未注册用户等).
首先我想我会在我的CMS中编程授权,但是CouchDB有这样的东西,所以我想问:
使用CouchDB创建多用户应用程序的最佳做法是什么?
如果我想稍后添加其他第三方授权怎么办?说我希望用户通过Twitter/Facebook/Google登录?
问候,Pipo
关键问题是您是否要向公众公开CouchDB.
如果你想建立自己的CMS作为一个经典的三层架构,其中的CouchDB是专门从特权脚本层访问,例如PHP,那么我会建议你滚你自己的授权体系.这将使您更好地控制授权逻辑.特别是,您可以实现基于文档的读取访问控制(CouchDB安全系统中不可用).
如果您希望将CouchDB公开给公众,那么事情就不同了.您实际上无法编写服务器端逻辑(除了通过更改源的单独的异步侦听器),因此您必须使用 CouchDB的内置身份验证/授权系统.这限制了您在数据库级别(而不是文档级别)上读取受控访问权限.可以使用验证功能控制写访问.CouchDB管理员不应该等同于应用程序管理员,因为CouchDB管理员在传统设置中与服务器管理员相当.CouchDB中的数据库管理员更适合(可以更改设计文档,因此可以像添加插件一样对CMS安装进行修改).具有写访问权限的所有其他用户可以实现为数据库成员.
我更喜欢第二种方法,因为这将使您有可能利用CouchDB的所有优秀功能,如复制和更改提要.但是,如果需要细粒度的读访问控制,则必须在具有不同成员的数据库之间进行一些过滤复制.
如果你想使用比CouchDB中所提供的其他身份验证机制,你最终将不得不修改安装(如果你想使用托管CouchDB的这可能是一个问题).对于facebook插件,请参阅https://github.com/ocastalabs/CouchDB-Facebook-Authentication.
| 归档时间: |
|
| 查看次数: |
1600 次 |
| 最近记录: |