2011-03-01 73 views
9

我是CouchApp和CouchDB的新手,并且有一些问题。CouchApp/CouchDB中的会话和安全性?

  1. 我怎样才能让我从自己的数据库中CouchApp会话(不_users)?
  2. 我将如何检索该会话?
  3. 如何解析文档中的数据?

我可以用一个视图做到这一点,但是当有人叫我的观点url和获取的ID,他就可以得到这样的密码的所有数据(我想用我自己的数据库来存储登录信息)。

在我的数据库中,我有一个这样的文件:

{ 
    "_id": "...", 
    "_rev": "...", 
    "XDocType": "user", 
    "name": "Administrator", 
    "password": "1234", 
    "username": "admin" 
} 

我想打一个简单的登录/注册/与会话,而不是饼干注销。

回答

11

由于整个应用程序在客户端(浏览器)中运行,因此会话对于Couch应用程序来说不那么重要。 CouchDB的唯一执行以下操作:

  • 认证(用户可以使用密码进行连接,或者得到一个cookie在稍后识别)
  • 授权(CouchDB的允许或禁止读取或写入数据,根据用户的名字和角色和数据库_security对象和validate_doc_update功能。

您可以更改用户帐户(而不是_users)的默认数据库,但是你必须有一个用户数据库,你可以设置_security的数据库,以便匿名用户不能访问它。 (但新用户不能轻松注册,因此是一种折衷。)

Jan有一篇关于CouchDB security的优秀文章。

+0

所以,至少我应该在一个单一的网站有2个数据库,不应该吗? ..感谢您的网址 – 2011-03-01 18:09:18

+2

是的,即使每个用户一个数据库(加上一个公共资料库)是一个非常合理的Couch应用程序。多个数据库没有问题。 – JasonSmith 2011-03-02 05:17:55

+0

@JasonSmith - 将为数百万用户支持数百万个数据库吗? – rbp 2013-02-13 17:22:02