在这种情况下,只有用户本身才有权访问其自己的User
对象。当前,在创建用户之后,立即在Cloud Code afterSave
触发器中设置了ACL:
Parse.Cloud.afterSave("_User", async (request) => {
const user = request.object;
if (!user.existed()) {
user.setACL(new Parse.ACL(user));
await user.save();
}
});
是否可以在beforeSave
触发器中执行此操作(以保存DB写操作?
我看了解析服务器代码,应该可以的。我担心默认ACL可能会覆盖您在beforeSave
触发器中设置的内容,但事实并非如此。如您所见,here保留了预先设置的内容,甚至您甚至可以从客户端发送此设置。
在beforeSave
中设置一个空的ACL将确保只授予该用户访问权限,因为默认情况下,该用户被授予对自己的_User
对象的访问权限:
request.object.setACL(new Parse.ACL());
是,请确保不要在user.save()
中调用beforeSave