我正在尝试检查路由中的用户权限(角色)(铁路由)。我在用户中有一个布尔属性,我在
中设置Accounts.onCreateUser
e.g。 isvalid = false。第一个问题是只暴露了用户名和ID,所以我也尝试发布
Meteor.publish('userData',function() {
return Meteor.users.find({_id:this.userId},{fields:{'isvalid':1}});
});
在路由器中我检查
onBeforeAction: function() {
if(!Meteor.user() || !Meteor.user().isvalid)
this.render('nopermission');
else
this.next();
}
它可以工作,但是当我调试时,我可以看到onBeforeAction触发了三次。第一次用户未定义,第二次我有一个没有属性的用户是无效的,第三次我拥有一切。在调试中,我可以看到屏幕闪烁的模板" nopermission"但是当我现场运行它似乎没问题。我想我做错了,如何以正确的方式检查权限?我知道这个代码在客户端运行,我打算甚至在服务器上进行检查,我认为Meteor.user()。无效在服务器上没有任何问题。 谢谢你的帮助