我在我的网页上使用meteor roles包进行身份验证。我定义了两个角色,一个是student
角色,另一个是administrator
角色。对于在我的网页上注册的所有新用户,我使用以下帮助者为他们分配了students
角色:
Accounts.createUser({
email:email,
password:password,
profile:{ //profile includes fullname and surname
fullname:fullname,
surname:surname
}
},
function(err){
if(err){
FlashMessages.sendError("There was an error");
} else {
FlashMessages.sendSuccess("Account Created");
Roles.addUsersToRoles( Meteor.userId(), 'Students' );
Router.go("/dashboard");
}
});
尝试添加新用户后,用户确实会添加到meteor用户集合中,并且角色会被分配为意图。但控制台确实返回以下错误:
insert failed: WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: meteor.roles.$name_1 dup key: { : \"Students\" }","op":{"name":"Students","_id":"w3vnwKrKJTNE8TpBS"}})
由于用户获得分配的角色并且正在插入流星集合中,因此我无法理解错误,因此无法解决此问题。