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