具有身份验证的Mongoose导致超时

时间:2016-07-07 19:23:47

标签: node.js mongodb authentication mongoose

所以我们遇到了一个有趣的问题。我们希望在MongoDB层添加身份验证以提高安全性。但是我们没有得到有利的结果。

预设置

  1. 以root身份使用mongo shell(针对admin表)
  2. 切换到所需的数据库(applicationdb)
  3. 执行db.createUser()
  4. 验证用户已成功创建

    {         “_id”:“applicationdb.appuser”,         “user”:“appuser”,         “db”:“applicationdb”,         “角色”:[                 {                         “角色”:“readWrite”,                         “db”:“applicationdb”                 }         ] }

  5. 情景1:

    1. 更改mongodb.conf,auth = true
    2. 重启Mongod服务
    3. 使用以下方式连接mongoose:

      mongoose.connect( '的mongodb:// APPUSER:password@xx.xxx.xxx.xxx:27017 / applicationdb');

    4. 没有收到连接错误,所以尝试通过Mongoose执行GET导致操作超时而没有任何错误(至少我能找到)

    5. 情景2:

      1. 更改mongodb.conf,auth = false
      2. 重启Mongod服务
      3. 使用以下方式连接mongoose:

        mongoose.connect( '的mongodb://xx.xxx.xxx.xxx:27017 / applicationdb');

      4. 没有收到连接错误,所以尝试通过Mongoose执行GET并成功返回文档

      5. 为什么我们在MongoDB中使用身份验证时会收到此超时并且从未完成请求?

        任何帮助都会很棒,我们在这一点上不知所措!

1 个答案:

答案 0 :(得分:1)

您需要使用id data = _carStatuName[indexPath.row]; // since the error seems that your data is a number type if([data isKindOfClass:[NSNumber class]]){ if(_carStatuValue.count == 0){ cell.statuValueLabel.text = @"null" } else{ cell.statuValueLabel.text = [data stringValue]; // use the NSNumber string value } } else{ // pre-empt the crash cell.statuValueLabel.text = [NSString stringWithFormat:@"%@",data]; // will output whatever the data is. technically this shouldn't happen if you are sure all your data will be an NSNumber type } 选项重新启动mongo服务,请参阅here

如果它不起作用,请执行以下操作: 尝试使用--auth设置在mongoose中设置服务器选项。请参阅herehere