连接到 MongoDB 服务集群时出错:服务器在 SASL 身份验证步骤上返回错误:错误身份验证身份验证失败
error connecting to MongoDB service cluster: server returned error on SASL authentication step: bad auth Authentication failed
我正在尝试使用 Mongodb 的 Stitch 服务。
当我尝试连接到 MongoDB 时,出现此错误:
Error while executing pipeline
com.mongodb.stitch.android.StitchException$StitchServiceException:
error connecting to MongoDB service cluster: server returned error on
SASL authentication step: bad auth Authentication failed.
我已经看到 问题了,但是他在这里使用登录名和密码进行身份验证,而我使用 FacebookAuthProvider
进行登录。所以 bad auth
应该没有任何问题,因为我可以清楚地看到用户的 Facebook 数据。
这是我使用的代码。
stitchClient = new StitchClient(getApplicationContext(), "user-recognition-tgnek");
mongoClient = new MongoClient(stitchClient, "mongodb-atlas");
db = mongoClient.getDatabase("<DatabaseName>");
FacebookAuthProvider fbProvider = FacebookAuthProvider.fromAccessToken(AccessToken.getCurrentAccessToken().getToken());
stitchClient.logInWithProvider(fbProvider).continueWithTask(new Continuation<String, Task<Void>>() {
@Override
public Task<Void> then(@NonNull Task<String> task) throws Exception {
final Document updateDoc = new Document(
"owner_id",
task.getResult()
);
updateDoc.put("Name", "Deepanshu Luhach");
return db.getCollection("Users").updateOne(null, updateDoc, true);
}
}).continueWithTask(new Continuation<Void, Task<List<Document>>>() {
@Override
public Task<List<Document>> then(@NonNull Task<Void> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return db.getCollection("Users").find(
new Document("owner_id", stitchClient.getUserId()),
100
);
}
}).addOnCompleteListener(new OnCompleteListener<List<Document>>() {
@Override
public void onComplete(@NonNull Task<List<Document>> task) {
if (task.isSuccessful()) {
Log.d("STITCH", task.getResult().toString());
return;
}
Log.e("STITCH", task.getException().toString());
}
});
这是完整的 Logcat:
12-23 23:21:30.691 7086-7119/com.example.nwagh.myapplication E/Volley:
[4067] BasicNetwork.performRequest: Unexpected response code 502 for
https://stitch.mongodb.com/api/client/v1.0/app/user-recognition-tgnek/pipeline
12-23 23:21:30.705 7086-7086/com.example.nwagh.myapplication E/Stitch:
Error while executing pipeline
com.mongodb.stitch.android.StitchException$StitchServiceException:
error connecting to MongoDB service cluster: server returned error on
SASL authentication step: bad auth Authentication failed.
at com.mongodb.stitch.android.StitchError.a(SourceFile:53)
at
com.mongodb.stitch.android.StitchClient.onErrorResponse(SourceFile:754)
at com.android.volley.Request.deliverError(Request.java:598)
at
com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6515)
at java.lang.reflect.Method.invoke(Native Method)
at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
请帮我解决这个问题,我找不到与此相关的任何内容。
连接到 Atlas 集群 时出现一些错误。只需尝试 重新链接 应用程序与集群,一切都会完美运行。
要重新链接您的应用程序,请转到 MongoDB Atlas -> Stitch Apps -> 在 操作 您将看到取消链接应用程序的选项,然后您可以重新链接它。
学分: @edaniels
我在与 dokku mongo:import 一起使用时遇到了同样的错误。我怀疑您在 mongo 数据库名称中包含了特殊字符。
在我的例子中,我在数据库名称中包含了点(句点)
当 'dokku mongo:create ' 我已将其更改为 seunghunlee 而不是 seunghunlee.net 时,您不应在 mongo 数据库名称中包含点,现在此命令有效
dokku mongo:import seunghunlee < seunghunlee.net.dump.gz
希望对您有所帮助!
我正在尝试使用 Mongodb 的 Stitch 服务。 当我尝试连接到 MongoDB 时,出现此错误:
Error while executing pipeline com.mongodb.stitch.android.StitchException$StitchServiceException: error connecting to MongoDB service cluster: server returned error on SASL authentication step: bad auth Authentication failed.
我已经看到 FacebookAuthProvider
进行登录。所以 bad auth
应该没有任何问题,因为我可以清楚地看到用户的 Facebook 数据。
这是我使用的代码。
stitchClient = new StitchClient(getApplicationContext(), "user-recognition-tgnek");
mongoClient = new MongoClient(stitchClient, "mongodb-atlas");
db = mongoClient.getDatabase("<DatabaseName>");
FacebookAuthProvider fbProvider = FacebookAuthProvider.fromAccessToken(AccessToken.getCurrentAccessToken().getToken());
stitchClient.logInWithProvider(fbProvider).continueWithTask(new Continuation<String, Task<Void>>() {
@Override
public Task<Void> then(@NonNull Task<String> task) throws Exception {
final Document updateDoc = new Document(
"owner_id",
task.getResult()
);
updateDoc.put("Name", "Deepanshu Luhach");
return db.getCollection("Users").updateOne(null, updateDoc, true);
}
}).continueWithTask(new Continuation<Void, Task<List<Document>>>() {
@Override
public Task<List<Document>> then(@NonNull Task<Void> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return db.getCollection("Users").find(
new Document("owner_id", stitchClient.getUserId()),
100
);
}
}).addOnCompleteListener(new OnCompleteListener<List<Document>>() {
@Override
public void onComplete(@NonNull Task<List<Document>> task) {
if (task.isSuccessful()) {
Log.d("STITCH", task.getResult().toString());
return;
}
Log.e("STITCH", task.getException().toString());
}
});
这是完整的 Logcat:
12-23 23:21:30.691 7086-7119/com.example.nwagh.myapplication E/Volley: [4067] BasicNetwork.performRequest: Unexpected response code 502 for https://stitch.mongodb.com/api/client/v1.0/app/user-recognition-tgnek/pipeline 12-23 23:21:30.705 7086-7086/com.example.nwagh.myapplication E/Stitch: Error while executing pipeline com.mongodb.stitch.android.StitchException$StitchServiceException: error connecting to MongoDB service cluster: server returned error on SASL authentication step: bad auth Authentication failed. at com.mongodb.stitch.android.StitchError.a(SourceFile:53) at com.mongodb.stitch.android.StitchClient.onErrorResponse(SourceFile:754) at com.android.volley.Request.deliverError(Request.java:598) at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6515) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
请帮我解决这个问题,我找不到与此相关的任何内容。
连接到 Atlas 集群 时出现一些错误。只需尝试 重新链接 应用程序与集群,一切都会完美运行。
要重新链接您的应用程序,请转到 MongoDB Atlas -> Stitch Apps -> 在 操作 您将看到取消链接应用程序的选项,然后您可以重新链接它。
学分: @edaniels
我在与 dokku mongo:import 一起使用时遇到了同样的错误。我怀疑您在 mongo 数据库名称中包含了特殊字符。 在我的例子中,我在数据库名称中包含了点(句点)
当 'dokku mongo:create ' 我已将其更改为 seunghunlee 而不是 seunghunlee.net 时,您不应在 mongo 数据库名称中包含点,现在此命令有效
dokku mongo:import seunghunlee < seunghunlee.net.dump.gz
希望对您有所帮助!