我试图使用iron-router
保护我的流星应用程序,这是我的onBeforeAction功能:
this.route('manageUsers', {
path: '/panel/user_management',
layoutTemplate: 'panel',
onBeforeAction: function(){
if((Meteor.user() === null)||(Meteor.user().role !== 'superAdmin')){
Router.go('signIn');
throwAlert('You dont have access to see this page', 'notification');
}
}
});
当我尝试通过按下链接按钮转到/panel/user_management
子页面时,一切正常(用户被重定向等),但是当我直接在浏览器中输入路径时{{1} })和命中输入用户没有被重定向,我收到控制台localhost:3000/panel/user_management
错误。谁知道我做错了什么?
有关其他信息,此视图会列出我注册的所有用户。当我正常进入这条路径(没有错误)时,我看到完整的用户列表。当我收到错误时,模板不会出现在Exception in defer callback
。
答案 0 :(得分:1)
最后,我已经解决了这个问题 - 问题是错误的if
声明,这里是正确的:
if((!Meteor.user())||(Meteor.user().role !== 'superAdmin')){}