2013-08-26 120 views
6

我想知道是否有人可以演示如何使用路由器控制器類上的全局「before」操作來處理用戶身份驗證,並根據結果顯示適當的路由/模板。IronRouter授權控制器

我的用例是有一個AppController作爲認證防火牆,並在用戶註銷時阻止任何子控制器操作。例如。

// Create a primary app controller stub with the auth firewall 
AppController = RouteController.extend({}); 

// Extend the AppController with all the other app routes 
MainController = AppController.extend({}); 

任何幫助,將不勝感激!

回答

5

在我的博客寫的流星我使用代碼:

AppController = RouteController.extend({ 
    before:function(){ 
    if(_.isNull(Meteor.user())){ 
     Router.go(Router.path('home')); 
    } 
    } 
}) 

AdminPostController = AppController.extend({ 
    waitOn: function() { return App.subs.posts} 
}); 

Router.map(function(){ 
    this.route('submitPost', { 
    path: '/submitPost', 
    controller:'AdminPostController', 
    template:'postCreate' 
    }); 
    this.route('editPost', { 
    path: '/post/:slug/edit', 
    controller:'AdminPostController', 
    template:'postEdit' 
    }); 
})