Parse Server 2.4.x中的云代码sessiontoken更改



i刚刚将解析服务器从2.2.x更新为2.4.x,使用SessionToken的云代码不起作用。以下是简单的云代码功能:

Parse.Cloud.define('find_device', function(request, response) {
  var user = request.user;
  if(user){
    var token = user.getSessionToken();
    console.log("User token " + token);
    var query = new Parse.Query('devices');
    query.equalTo('deviceId', "389125651274465");
    query.find({ sessionToken: token })//<- sessionToken does not work
    .then(function(messages) {
      response.success(messages);
    },function(error){
      console.log(error);
      response.error("error");
    });
  }else{
    response.error("error");
  }
});

它使用{sessionToken: token}查询。该代码以前有效,但现在它在解析服务器2.4.x中不起作用。我收到错误

ParseError { code: undefined, message: 'unauthorized' }

我不知道Parse-Server版本2.4.x.是否有任何变化。如果我更改为{useMasterKey:true},则可以正常工作,但是在这种情况下,我想使用用户令牌查询。感谢您的帮助。

他们没有真正改变了... query.find({sessionToken : token}) ...部分,但也许他们已经改变了User.getSessionToken()的工作方式。

文档说:

字符串getsessionToken((

如果 用户已登录,或者是否是查询的结果 主密钥。否则,返回未定义。

返回:会话令牌或未定义的

由于在云代码的情况下,用户均未登录,而不是使用MasterKey查询的结果,getSessionToken()实际上只能以这种方式行事。

要纠正这一点,我建议的是,而不是在云代码中的用户(以及在服务器上(进行查询,只需让用户从客户端制作。

最新更新