gpt4 book ai didi

javascript - 解析 400 错误请求 setACL

转载 作者:行者123 更新时间:2023-11-29 19:37:24 25 4
gpt4 key购买 nike

我有一个“管理员” Angular 色,我想将其分配给当前在我的 Parse 中的所有用户对象。但是,无论我尝试什么,我都会收到 400 错误。当我尝试通过仪表板手动添加 ACL 时,它不会保存。例如,我将输入 "{ "role:Administrator":{"read":true, "write":true}}"它将在刷新时恢复为 (undefined)。

编辑:所以我尝试创建一个 Cloud Code 函数。尝试运行该函数时,仍然收到 400 错误以及“结果:错误:未定义未授权”。

main.js(云代码):

Parse.initialize("*****", "*****");
Parse.Cloud.define("modifyUser", function(request, response) {
if (!request.user) {
response.error("Must be signed in to call this Cloud Function.")
return;
}

// The rest of the function operates on the assumption that request.user is *authorized*
Parse.Cloud.useMasterKey();

var query = new Parse.Query(Parse.User);
query.find({
success: function(results) {
response.success("Successfully retrieved " + results.length + " scores.");
// Do something with the returned Parse.Object values
for (var i = 0; i < results.length; i++) {
var object = results[i];
alert(object.id + ' - ' + object.get('objectId'));
}
},
error: function(error) {
response.error("Error: " + error.code + " " + error.message);
}
});

});

我的客户端 .js 文件: $(函数() { console.log("正在运行的仪表盘"); Parse.initialize("**", "**");

    Parse.Cloud.run('modifyUser', {username: "myusername@email.com"}, {
success: function(result) {
// result is 'Hello world!'
console.log(result);
},
error: function(error) {
console.log("error: " + error.code + " " + error.message);
}
});
});

更新前:理想情况下,我想遍历我的 Javascript 文件中的所有用户并使用以下代码更新他们的 Angular 色:

// set up ACL for User object
var userACL = new Parse.ACL();
userACL.setRoleWriteAccess("Administrator", true);
userACL.setRoleReadAccess("Administrator", true);

// grab all Users
var user_query = new Parse.Query(Parse.User);
user_query.find( {
success: function(users) {
// querying all users works successfully
console.log(users);
// assign Administrator ACL to each user
for (var i=0; i<users.length; i++) {
users[i].setACL(userACL);
users[i].save(null, {
success: function(user) {
console.log("save successfully");
},
error: function(error) {
console.log("error saving: " + error.code + " " + error.message);
}
});
}
},
error: function(error) {
console.log("error: " + error.code + " " + error.message);
}
});

但是,这会返回以下内容:POST https://api.parse.com/1/classes/_User/userIDhere 400(错误请求)对于我尝试与“用户对象不允许来自其他用户的写入”一起保存的每个用户,尽管我的用户列在管理员 Angular 色下。

如有任何帮助,我们将不胜感激。

最佳答案

好的,我已经解决了我的问题。您不应该在 Cloud Code 函数中使用 Parse.initialize,并且您当然不能将它与 useMasterKey 一起使用。这是我偶然发现的链接:https://www.parse.com/questions/usemasterkey-and-modifying-user-results-in-unauthorized

这真的应该在 Cloud Code 文档中。

关于javascript - 解析 400 错误请求 setACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24742729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com