尝试保存对象时,parse.com“错误:未经授权”

Posted

技术标签:

【中文标题】尝试保存对象时,parse.com“错误:未经授权”【英文标题】:parse.com "error: unauthorized" when trying to save object 【发布时间】:2015-06-25 13:25:28 【问题描述】:

我正在使用主密钥,但在尝试保存对象时仍然出现未经授权的错误。谁能弄清楚为什么?我可以看到“开始制作票”被记录下来。并且 request.params 都提取了正确的信息。

另外,一个附带问题...我的印象是,如果执行 response.error 它会停止代码,但随后会将该错误消息发送到调用此云代码的函数,然后在那里运行任何错误处理.我在这个云代码中有一个 console.log 错误消息,然后在调用它的函数中有一个错误警报。我正在显示控制台日志,但不是警报。我的假设是否错误,因为它没有通过,并且实际上只是在执行 response.error 时终止了整个事情?

Parse.Cloud.define("createRecord", function(request, response) 
    var caseClass = Parse.Object.extend("Cases");
    var ticket = new caseClass();
    console.log("started making ticket");
    ticket.title = request.params.title;
    ticket.category = request.params.category;
    ticket.priority = request.params.priority;
    ticket.description = request.params.cmnts;
    ticket.save(null, useMasterKey: true).then(function() 
        response.success();
    , function(error) 
        response.error("error response: " + error.message);
    );

【问题讨论】:

【参考方案1】:

试试这个:

Parse.Cloud.run("createRecord", something: yourData, ...

和:

Parse.Cloud.define("createRecord", function (request, response) 
    var something = request.params.something;
    var caseClass = Parse.Object.extend("Cases");
    var ticket = new caseClass();
    console.log("started making ticket");
    ticket.set("title", something.title);
    ticket.set("category", something.category);
    ticket.set("priority", something.priority);
    ticket.set("description", something.cmnts);
    ticket.save(null, useMasterKey: true).then(function() 
        response.success();
    , function(error) 
        response.error("error response: " + error.message);
);

【讨论】:

感谢您的建议。我很想尝试一下,但是命令行工具一直告诉我要更新,我不知道怎么做。一旦我得到它更新,我会测试一下看看。该错误似乎来自没有正确的授权来保存/不识别主密钥。您是否认为在尝试保存时调用 request.params 会产生授权问题? “您可以在调用 Parse 之前调用 Parse.Cloud.useMasterKey()”,我有一些带有 request.params 的代码,它适用于 Parse.Cloud.useMasterKey(); 我也试过了。我把那行放在 var caseClass = Parse.Object.extend("Cases"); 之前它仍然以相同的方式处理并通过相同的错误 抱歉耽搁了,我花了一段时间才能够再次部署云代码。我尝试了该更改,但仍然无法正常工作。根据日志,它甚至没有运行该云功能。 对其进行了更多测试,这就是我所处的位置:如果我在运行云代码时尝试将对象作为参数传递,它将导致云代码根本无法运行。我将每个值作为一个单独的值发送,并且我能够运行它,但我的结构类似于你所做的。我在云代码中创建了一个工单对象,为每个值创建了 ticket.set() 列表,然后进行了 ticket.save,但我仍然遇到相同的未经授权的错误。我错过了什么?我还刚刚添加 Parse.Cloud.useMasterKey() 作为云代码中的第一行,以进行良好的衡量。这不应该给我完全访问权限吗?

以上是关于尝试保存对象时,parse.com“错误:未经授权”的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse.com 播放音频

Parse.com 从客户端批量保存 (saveAll) 超时

Parse.com PHP SDK ParseFile Image 403 Forbidden

node.js @sendgrid/mail 错误:未经授权

在内部生成 laravel 护照令牌。 401错误未经授权

如何在 iOS 中保存 PFObject 列表?