我已经为用户创建了一个表单来更新他们的个人资料。当我提交表格时,我收到了[403]错误。
Not permitted. Untrusted code may only update documents by ID.
我的问题是,如果我打算使用Meteor.users.allow
,在哪个文件/目录中 - 我会编写这段代码吗?
谢谢, 森
答案 0 :(得分:17)
您获得的错误不是您的允许/拒绝规则的结果。如果是,您将直接获得“拒绝访问”错误。
更新用户时(以及制定正确的allow
规则),您需要通过_id
更新用户 - 尤其是在客户端更新用户时。
所以而不是
Meteor.users.update({name: "etc"}, {$set:..});
您需要将其拆分为两个,一个用于获取_id
,然后一个用于更新您的文档。
var user = Meteor.users.findOne({name: 'etc'});
Meteor.users.update({_id: user._id}, {$set:..});
规则在客户端上,您只能在更新时使用_id
查找文档。