Parse.com 安全角色未保存
Parse.com security Role not saving
这是我第一次在 Parse 中尝试安全角色,我相信我想做的事情相当简单。在 CloudCode 中使用 afterSave 触发器注册新用户后,我想创建一个新的安全角色。
我已经确认正在调用它并且 roleName 是正确的,但数据浏览器中没有保存任何内容。我觉得我在这里遗漏了一些非常基本的东西,因为它无法正常工作 - 是否有我需要打开的设置?
Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.object;
if (user.existed()) { return; }
var acl = new Parse.ACL();
acl.setPublicReadAccess(false);
acl.setPublicWriteAccess(false);
var roleName = user.get("email");
Parse.Cloud.useMasterKey();
var companyRole = new Parse.Role(roleName, acl);
console.log("Role = " + companyRole);
companyRole.save();
});
找到解决方案。在 Parse 中,角色的名称只能包含字母、数字和下划线。我试图将角色名称设置为电子邮件地址,其中包含“@”和“.”
我在保存名称之前对这些字符进行了替换并且效果很好。如果尝试使用无效字符保存,我希望 Parse 会抛出错误,但现在问题已解决。
这是我第一次在 Parse 中尝试安全角色,我相信我想做的事情相当简单。在 CloudCode 中使用 afterSave 触发器注册新用户后,我想创建一个新的安全角色。
我已经确认正在调用它并且 roleName 是正确的,但数据浏览器中没有保存任何内容。我觉得我在这里遗漏了一些非常基本的东西,因为它无法正常工作 - 是否有我需要打开的设置?
Parse.Cloud.afterSave(Parse.User, function(request, response) {
var user = request.object;
if (user.existed()) { return; }
var acl = new Parse.ACL();
acl.setPublicReadAccess(false);
acl.setPublicWriteAccess(false);
var roleName = user.get("email");
Parse.Cloud.useMasterKey();
var companyRole = new Parse.Role(roleName, acl);
console.log("Role = " + companyRole);
companyRole.save();
});
找到解决方案。在 Parse 中,角色的名称只能包含字母、数字和下划线。我试图将角色名称设置为电子邮件地址,其中包含“@”和“.”
我在保存名称之前对这些字符进行了替换并且效果很好。如果尝试使用无效字符保存,我希望 Parse 会抛出错误,但现在问题已解决。