【发布时间】:2015-10-16 09:10:39
【问题描述】:
我正在阅读 Meteor here 和用户帐户包 here 的文档,但找不到答案。我已成功添加 useraccounts 包并创建了一些用户,但现在我想将一些数据添加到给定用户的集合中的记录中。
例如,在创建帐户和登录之后。我希望用户能够在他们的记录中添加/编辑一些字段(简短的传记等),但每当执行Meteor.users.update(..) 时,我都会收到 403 错误。
我的登录配置文件可以在here找到。
导致错误的代码:
Template.editProfile.events({
'submit form': function(e) {
e.preventDefault();
var profileInfo = {
displayName: $(e.target).find('[name=displayName]').val(),
tagLine: $(e.target).find('[name=tagLine]').val(),
aboutMe: $(e.target).find('[name=aboutMe]').val()
};
Meteor.users.update(
{ _id: Meteor.userId()},
{ $set: profileInfo},
function (err) {
if(err) {
console.log('there was an error submitting editProfile data');
console.log(err);
} else {
Router.go('profile');
}
}
);
}
});
执行控制台日志显示Meteor.userId() 正确返回,所以我不确定问题出在哪里。我假设这是允许/拒绝的问题,但我什至不知道从哪里开始进行故障排除。
确切的错误是:
错误:403
errorType: "Meteor.Error"
消息:“访问被拒绝 [403]”
原因:“访问被拒绝”
【问题讨论】:
-
我认为您需要对用户 mongo 集合执行 collection.allow({update: blahblah})。文档在这里:docs.meteor.com/#/full/allow
-
@matthias-eckhart ,我看到这个问题被编辑了一点,但想指出我是专门针对useraccounts-core package 提出这个问题的,它没有提到在任何地方设置allow()使用这个包时的客户端(我认为可能有一些我误解的可选配置)
标签: javascript meteor meteor-accounts