创建视图以检查文档字段的特定值(用于简单登录)

Creating view to check a document fields for specific values (For a simple login)

我是 cloudant 的新手,所以请原谅我问这个问题。我正在创建一个简单的手机游戏登录系统,它只检查用户名(电子邮件)和密码。

我有几个这种格式的简单文档

{
    "_id": "xxx",
    "_rev": "xxx",
    "password": "3O+k+O8bxsxu0KUlSBUiww==", --encrypted by application beforehand
    "type": "User",
    "email": "asd@asd.com"
}

现在我似乎无法获得正确的 'Formula' 来创建此视图(地图功能),因此我会发出网络请求并将电子邮件和密码传递给它。如果有与电子邮件匹配的文档,则根据传递的值检查 doc.password。如果匹配,函数应该 return 一个简单的 "YES".

现在我的地图功能如下,但这只是 return 所有文档。

function(doc) {
    if (doc.email){
        index("password", doc.password, { store : true });
        if (doc.password){ 
            emit("YES");
        }
    }
}

可能是我的请求格式也不对。现在是这样的。值不是真实的,仅用于格式检查

https:/etcetc/_design/app/_view/viewCheckLogin?q=email:"asd@asd.com"&password:"asd"

您似乎误解了视图的工作原理。通常,您不能根据请求执行 logic 到 return 不同的结果。视图请求中的查询参数只能用于限制视图条目的结果集 returned 或来自 reduce 函数的 return 分组信息。

要确定给定的用户名和密码是否匹配,您可以将这些值作为键发出,然后查询它们。这将 return 这些键的视图条目,如果没有匹配项,则为空列表。但是我对这里的安全性非常谨慎。任何有权访问视图的人都可以看到所有视图条目,即所有用户名和密码。