forms - 在 couchdb 中选择用户

标签 forms authentication couchdb

我有一个用于用户身份验证的 HTML 表单,用 SQL 语言更容易提取数据

select name, password from users where name='nameField' and password='passwordField'

在 couchdb 中,我不能仅使用临时 View 来使用本地 View :

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

但不推荐(Click here),我该怎么办? :(

谢谢

最佳答案

这就是我通常喜欢做的...

  1. 创建您的设计文档并查看。例如,/_design/users/_views/byUserPass

  2. 您的 map 函数可能看起来像这样(没有 reduce 函数):

    函数(文档)
    {
    如果(doc.docType ==“用户”)
    emit([doc.username, doc.password], doc);

  3. 然后我可以这样查询:http://localhost:5984/somedb/_design/users/_views/byUserPass?key=["exampleUsername", "examplePassword"]

  4. 如果我得到返回的行,则凭据是正确的。作为奖励,我还获得了用户的所有信息。现在我可以更新他们的 session (例如,将他们的用户 ID 放入 session 中)或文档(例如,更新“上次登录时”),而无需额外调用 CouchDB 来获取他们的信息。

如果您不想更新任何内容,则返回一个空值:emit([doc.username, doc.password], null); - 这也会减少带宽消耗,因为您不再传回整个文档。

干杯。

关于forms - 在 couchdb 中选择用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769716/

相关文章:

javascript - 有条件提交表格未发布

c# - 检索 Azure 用户访问的持久 token

javascript - CouchDB 设计文档中的多个 validate_doc_update 函数。有什么好的做法吗?

node.js - 如何使用 CouchDB Nano 检查数据库是否存在

javascript - react 表单验证

php - 是否可以使用 php 表单/按钮将新表插入数据库?

mysql - 未注册用户登录 WordPress

redis - 与中央数据库同步的内存数据库

javascript - 是否存在一个插件,可以在下拉菜单中创建 "Other"选项,并在选择“其他”时创建用于替代输入的文本框?

authentication - Google 登录后立即保存信息到 Azure 移动服务(.NET 后端)