【问题标题】:Auth0: Not authorized for query on db.collectionAuth0:未授权查询 db.collection
【发布时间】:2019-02-20 08:28:56
【问题描述】:

我正在尝试使用 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
          });
        }
      });
    });
  });
}

任何想法为什么我可能会收到此错误?提前致谢!

【问题讨论】:

    标签: javascript mongodb auth0


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,我安装了 Auth0 日志扩展,现在看到这个错误:` [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' `跨度>
    • 我在尝试运行创建用户脚本时也收到错误“用户已存在”...即使我使用唯一的电子邮件。
    • 好的,我现在看到的错误是Cannot read property 'collection' of undefined
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2017-06-12
    • 2015-02-14
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    相关资源
    最近更新 更多