gpt4 book ai didi

mongodb - Dart - 尝试使用 mongodb 进行身份验证时出错

转载 作者:可可西里 更新时间:2023-11-01 10:03:27 24 4
gpt4 key购买 nike

运行后:

import 'package:mongo_dart/mongo_dart.dart';

//Create account with given credentials
createAccount(Map<String, String> credentials) async {

Db db = new Db('mongodb://127.0.0.1/exampledb');
await db.open();
await db.authenticate("user", "password");

//TODO: Post credentials into DB
}

我在 Dart 服务器上收到一条错误消息:

Unhandled exception: Uncaught Error: {ok: 0.0, errmsg: auth failed, code: 18}

mongod 服务器上出现了一个不同的错误:

2015-09-27T20:04:25.921+0100 I ACCESS [conn1] Failed to authenticate user@exampledb with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentia ls missing in the user document

身份验证成功并允许我访问数据库的唯一一次是在我使用命令提示符时。

例子:

$ use exampledb
$ db.auth("user", "password")

如何使用 authenticate 方法让我的 Dart 脚本获得对本地 mongodb 的访问权限?

最佳答案

最新更新:

从 0.2.5 版本开始,mongo_dart 支持 SCRAM-SHA-1 认证机制。它默认用于与 MongoDb 3 的连接

更新:

这似乎是一些驱动程序相当普遍的问题,程序等不支持 mongodb 3.0 的新身份验证机制 (SCRAM-SHA-1)

默认情况下,mongodb 3.0 在创建新用户时不会以旧格式 (MONGODB-CR) 创建凭据。

有一个迂回的解决方案,强制mongodb 3.0及以上版本在创建用户时使用MONGODB-CR模式。在 https://jira.mongodb.org/browse/SERVER-17459 寻找示例解决方案正如该线程中所述

both new drivers and legacy software work with that solution

显然,mongo_dart 的最佳解决方案是向驱动程序添加新身份验证模式的实现。无法提供任何日期,但我认为这应该是我在有时间使用 mongo_dart 时可以考虑的第一个功能。

显然,如果有人通过拉取请求在这方面击败我,那就太好了 :)

原始答案

我也在我的环境中重现了该错误。

错误似乎与 MongoDb 3.0 版中更改的默认身份验证模式有关。问题解决后我会更新这个答案

关于mongodb - Dart - 尝试使用 mongodb 进行身份验证时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com