该场景类似于Evernote:用户可以拥有多个可以公开查看的笔记,但除了他自己以外的任何人都无法编辑。
(我已经实现了创建备注,但现在对更新备注感到困惑。已阅读data & security的文档,但它对我帮助不大;虽然我知道ACL。)
我在后端尝试了这个:
Parse.beforeSave("Notes", function (request, response) {
Parse.User.current();
});
但我得到错误说null(或未定义?对不起忘记确切的错误)不是一个函数。我认为这意味着Cloud Function中没有Parse.User
或Parse.User.current
。
然后根据a question in archive of Parse.com forum我发现:
Parse.beforeSave("Notes", function (request, response) {
var userId = new Parse.User({id : request.params.userId});
});
但它似乎不像是一种身份验证方法。我的意思是,通过这种方式,我只是信任客户端的数据而没有 认证 它。
答案 0 :(得分:0)
request.user将包含发出请求的用户对象。对该对象执行任何检查,如果不允许用户编辑它,则返回错误。
更好的是,在每个音符对象上设置适当的ACL,例如“公共读取”,并且只对创建者进行写入访问。这应该使beforeSave挂钩不必要。