云代码中用户的无效会话错误解析 AfterSave

Invalid Session Error Parse AfterSave on User in cloud code

我对在用户对象的 afterSave 方法中获取的无效会话令牌有疑问。我从字面上 运行 在 Parse 云代码中的 beforeSave 和 afterSave 中使用相同的查询,而保存前的查询有效,而保存后的查询无效。我想知道关于 Parse 的工作原理是否有什么我不理解的地方,因为我在 afterSave 方法中得到了一个无效的会话令牌,但在 beforeSave 方法中没有问题。

这里是查询...

  var AccessCode = Parse.Object.extend("AccessCode");
  var query =  new Parse.Query(AccessCode);
  query.equalTo("code", accessCode);
  query.notEqualTo("isUsed", true);
  query.find({
    success: function(results) {
        //do some things
    },
    error: function(error) {
        //display the error
    }
  })

我通过稍微更改代码解决了这个问题...

    Parse.Cloud.useMasterKey();
    var query =  new Parse.Query("AccessCode");
    query.equalTo("code", accessCode);
    query.notEqualTo("isUsed", true);
    query.find({
        success: function(results) {
        //do some things
        },
        error: function(error) {
       //display the error
       }
    })

现在一切正常,花花公子,但我仍然不确定为什么它一开始就不起作用。

出于某种原因,Parse User 对象上的 afterSave 需要:

Parse.Cloud.useMasterKey();

能够工作。

不知道为什么,但其他人也报告了同样的问题。我为此苦苦挣扎了一会儿,在 afterSave.

的开始 添加主密钥后,一切正常。