2013-08-26 13 views
6

Zastanawiam się, czy ktoś mógłby zademonstrować, jak użyć globalnego działania "przed" na klasie kontrolera routera, która obsługuje uwierzytelnianie użytkownika i wyświetla odpowiednią trasę/szablon na podstawie wyniku.Kontroler autoryzacji IronRouter

Moim przypadkiem użycia jest posiadanie AppController, który działa jako zapora uwierzytelniająca i blokuje wszystkie akcje kontrolera podrzędnego po wylogowaniu użytkownika. Na przykład.

// 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({}); 

Każda pomoc będzie doceniona!

Odpowiedz

5

W moim blogu napisany w meteor używam kod:

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' 
    }); 
})