0

感谢您的光临。

我有一门课,我们称之为 Class1,我用它来为我的应用程序的用户提供折扣/优惠券。当用户完成注册过程时,我创建一个对象并将指向它的指针存储在用户身上。

我想授予此类 CLP 权限,以便公众可以创建,但不能写入此对象。让它只是我在内部使用的东西。

我的问题是该类有几个不能未定义的数组,否则其他云函数最终会在尝试读取这些值时抛出错误。我为该类设置了一个 beforeSave() 触发器,并使用了主密钥,但该对象没有被保存,因此我在注册结束时保存的整个用户都不起作用。如何解决此问题,同时确保我的对象安全并确保用户无法免费窃取我的应用程序的所有服务?

这是我的 beforeSave 触发器:

Parse.Cloud.beforeSave("Class1", function(request, response)
{
    Parse.Cloud.useMasterKey();
    var emptyArray = [];
    class1 = request.object;
    if( class1.isNew() )
    {
        class1.set("array1", emptyArray);
        class1.set("array2", emptyArray);
        class1.set("array3", emptyArray);
    }
    response.success();
});
4

1 回答 1

0

所以我猜你不能在 beforeSave 触发器中使用主密钥来覆盖 CLP / ACL 的东西......虽然这是有道理的,因为这会完全否定这一点。

但是,如果您授予公共创建访问权限,则可以填充任何初始数据,如果没有更新访问权限,您将无法更新它。因此,显而易见的答案是在我创建对象时和保存它之前在客户端设置这些参数。

于 2015-10-28T18:24:52.313 回答