Cai*_*aio 3 forms couchdb login
我有一个用于身份验证的HTML表单,使用SQL语言更容易提取数据
select name, password from users where name='nameField' and password='passwordField'
Run Code Online (Sandbox Code Playgroud)
在couchdb我不能使用本地视图只是临时视图:
curl -X POST -H 'Content-Type: application/json' -d '{"map": "function (doc) {if (doc.name === "nameField" && doc.password === "passwordField") {emit (doc.name, doc.passWord)}}"}' http://localhost:5984/somedb/_temp_view
但不建议(点击这里),我该怎么办?:(
谢谢
这就是我通常喜欢做的事情......
创建您的设计文档和视图.例如,/ _design/users/_views/byUserPass
你的map函数可能看起来像这样(没有reduce函数):
function(doc)
{
if(doc.docType =="user")
emit([doc.username,doc.password],doc);
}
然后我可以像这样查询: http://localhost:5984/somedb/_design/users/_views/byUserPass?key=["exampleUsername", "examplePassword"]
如果我得到一个返回的行,那么凭据是正确的.作为奖励,我还获得了所有用户的信息.现在我可以更新他们的会话(例如,将他们的用户ID放入会话中)或文档(例如,在上次登录时更新"),而无需另外调用CouchDB来获取他们的信息.
如果你不想更新任何东西,那么返回一个null值:emit([doc.username, doc.password], null);- 这也会减少带宽消耗,因为你不再传回整个doc.
干杯.
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |