Auth0:未经授权可查询db.collection

时间:2018-09-16 02:06:00

标签: javascript mongodb auth0

我正在尝试使用Auth0授权连接我的Mongodb。我正在使用Mlabs托管数据库。在此数据库中,我有一个“用户”集合,并且文档具有“用户名”,“密码”,“电子邮件”和“ _id”键。当我尝试使用Auth0登录脚本时,出现以下错误:不授权在mydb.users上进行查询。以下是脚本:

function login(email, password, callback) {
  mongo('<mongodb uri>', function (db) {
    var users = db.collection('users');
    console.log(users);
    users.findOne({ email: email }, function (err, user) {

      if (err) return callback(err);

      if (!user) return callback(new WrongUsernameOrPasswordError(email));

      bcrypt.compare(password, user.password, function (err, isValid) {
        if (err) {
          callback(err);
        } else if (!isValid) {
          callback(new WrongUsernameOrPasswordError(email));
        } else {
          callback(null, {
            user_id: user._id.toString(),
            nickname: user.nickname,
            email: user.email
          });
        }
      });
    });
  });
}

有什么主意为什么会出现此错误?预先感谢!

1 个答案:

答案 0 :(得分:0)

您可能必须检查与数据库的连接。 回调应该有一个错误参数

 mongo('<mongodb uri>', function (err,db) {
    if(err){
      console.log(err)
     }
 })

如果仍不能解决问题,那么您必须分配读写权限才能在指定数据库上执行预期的操作(在您的情况下为读取)