是否可以在 beforeSave 中设置用户 ACL?

Is it possible to set a User ACL in beforeSave?

在这种情况下,只有用户自己才能访问自己的 User 对象。 目前,ACL 是在 Cloud Code afterSave 触发器中设置的,就在创建用户之后:

Parse.Cloud.afterSave("_User", async (request) => {

    const user = request.object;

    if (!user.existed()) {
        user.setACL(new Parse.ACL(user));
        await user.save();
    }
});

是否可以在 beforeSave 触发器中执行此操作(以保存数据库写入)?

是的,请确保不要在 beforeSave

中调用 user.save()

我看了一下Parse Server代码,应该是可以的。我担心默认的 ACL 会覆盖您在 beforeSave 触发器中设置的内容,但事实并非如此。如您所见,here 它保留了预先设置的内容,您甚至可以从客户端实际发送此设置。

beforeSave 中设置一个空的 ACL 将确保只有用户被授予访问权限,因为默认情况下用户被授予访问他们自己的 _User 对象的权限:

request.object.setACL(new Parse.ACL());