2013-08-26 2 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' 
    }); 
})