mongdb 怎么 客户端认证?数据库和集合都填上了,不加盐,md5 加密, 还是不能连

已解决,谢谢[爱心]

麻烦提供了下emqx的debug日志。

您先看看我配置得对不对呀[可怜]

你图里面加盐方式是suffix,和你描述的不加盐有出入啊,建议你先不加盐,先调通。

不对。

而且你先用明文调通是最快的,直接Md5也不要,先plain,一步步来。

不好意思,细看了下:应该是查询的filter内容写错:

{ username = "${username}" }

这样就可以了,不需要password那个。

稍等我,我装个mongo,试试哈。

谢谢,麻烦你了

试了是可以的。教程里面可能有细节你没注意到(应该是没说清楚)。
主要是mongodb要填对数据库名字,和集合名。
我描述一下我的步骤:

  1. 使用用户密码登录mongo后:

明确现在你在什么db下,我直接登录上来就用了admin

admin> show dbs;
admin   140.00 KiB
config   92.00 KiB
local    72.00 KiB

然后直接插入官方文档数据,注意,它是在admin数据库下创建了mqtt_user的集合。

db.mqtt_user.insertOne(
  {
      "username": "emqx_u",
      "salt": "slat_foo123",
      "is_superuser": true,
      "password_hash": "44edc2d57cde8d79c98145003e105b90a14f1460b79186ea9cfe83942fc5abb5"
  }
);

然后查询:

db.mqtt_user.findOne({username: 'emqx_u'})
{
  _id: ObjectId("65003508951f107acccc1e7e"),
  username: 'emqx_u',
  salt: 'slat_foo123',
  is_superuser: true,
  password_hash: '44edc2d57cde8d79c98145003e105b90a14f1460b79186ea9cfe83942fc5abb5'
}

以上,mongodb准备工作完成。

在dashboard上创建monogd认证。