python - arangodb 验证_users 密码

标签 python arangodb

如何验证给定密码是否与 arangoDB 中 _users 集合中的密码匹配?

我知道可以使用 Foxx 应用程序和 arangosh 来完成,但我没有使用它们,因为我在 python 中使用我自己的 API。所以我不知道如何在不使用 Foxx 或 arangosh 的情况下访问密码并检查是否与给定密码匹配。

最佳答案

您不应依赖系统 _users 集合来实现您自己的用户逻辑。该集合严格用于 ArangoDB 自己的用户对象,而不是用于应用程序级用户管理。

如果您确实想使用 ArangoDB 自己的用户管理,则在禁用身份验证时公开该信息的最佳方法是使用 ArangoDB 内的 org/arangodb/users 模块(例如使用 Foxx)。该模块提供了一个 isValid 方法,该方法接受用户名和密码并返回一个 bool 值,指示该组合是否有效:

var users = require('org/arangodb/users');
controller.post('/checkpw', function (req, res) {
  var credentials = req.params('credentials');
  res.json({
    valid: users.isValid(
      credentials.username,
      credentials.password
    )
  });
})
.bodyParam('credentials', joi.object({
  username: joi.string().required(),
  password: joi.string().required()
}).required());

users HTTP API 目前没有公开此方法,因此这是在不依赖于极其不稳定的实现细节的情况下实现此目的的唯一方法(_users 集合的格式在 2.0 版本中已发生变化)。 x 并且该集合将来可能会再次更改)。

编辑:ArangoDB 3.0 可能会添加一个 API 路由,当提供有效的用户名和密码时,该路由返回一个 token (而不是用 session 对象弄乱数据库)。这应该可以更轻松地与内置用户管理集成,但注意事项保持不变:ArangoDB 用户主要用于 API 级授权,而不是应用程序逻辑。

关于python - arangodb 验证_users 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37324318/

相关文章:

python - 使用 python beautiful soup 和 requests 包时 HTML 内容不正确

python - 将列表元素映射到字典中的键以获取Python中的十进制值

c# - Linq 列表包含

sql-server - 模糊逻辑搜索全名

arangodb - 当图遍历的级别加深时,性能会急剧下降

python - isalpha python 函数不会考虑空格

python - Python 中的列表与 C 中的数组

json - ETL - 自动将数据从一个数据库传输到另一个数据库

javascript - 使用 Arangodb 运行 Jest 测试时缺少模块

python - 直接比较两张图像,当一张有 alpha channel 时?