9

我为用户创建了一个表单来更新他们的个人资料。当我提交表单时,我收到 [403] 错误。

Not permitted. Untrusted code may only update documents by ID.

我的问题是,如果我要使用Meteor.users.allow,我应该在哪个文件/目录中编写此代码?

谢谢,内森

4

1 回答 1

18

您收到的错误不是您的允许/拒绝规则的结果。如果是,您将收到直接的“拒绝访问”错误。

在更新您的用户(以及制定正确的allow规则)时,您需要通过他们更新您的用户_id- 特别是如果他们正在客户端更新。

所以而不是

Meteor.users.update({name: "etc"}, {$set:..});

您需要将其一分为二,一个用于获取 ,_id另一个用于更新您的文档。

var user = Meteor.users.findOne({name: 'etc'});

Meteor.users.update({_id: user._id}, {$set:..});

该规则在客户端上,您只能_id在更新时使用它来查找文档。

于 2013-09-26T13:28:00.370 回答