创建视图以检查文档字段的特定值(用于简单登录)
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 这些键的视图条目,如果没有匹配项,则为空列表。但是我对这里的安全性非常谨慎。任何有权访问视图的人都可以看到所有视图条目,即所有用户名和密码。
我是 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 这些键的视图条目,如果没有匹配项,则为空列表。但是我对这里的安全性非常谨慎。任何有权访问视图的人都可以看到所有视图条目,即所有用户名和密码。