У нас есть большое приложение для марионеток с дополнительными приложениями/модулями.Аутентифицированные и общедоступные маршруты в македонской магии
Каждый из этих регистров регистрирует свой собственный маршрутизатор в пределах App.addInitializer
.
Что такое лучший способ отметить определенные маршруты как общедоступные и другие лица, требующие аутентификации?
У меня есть способ в приложении проверить, является ли пользователь аутентифицированным или нет, но я стараюсь не выполнять эту проверку в каждом обработчике маршрута.
PrivateModuleRouter.Router = Marionette.AppRouter.extend({
appRoutes: {
"privateRoute(/)" : "handlePrivateRoute",
}
});
var API = {
handlePrivateRoute: function() {
//I don't want to repeat this everywhere..
if(!Auth.isAuthenticated()) {
App.navigate('/login', {trigger:true});
} else {
PrivateRouteController.showForm();
}
};
App.addInitializer(function(){
new PrivateModuleRouter.Router({
controller: API
});
});
Есть ли способ в определении маршрута маркирует его как частные, а затем обработчик верхнего уровня маршрута выполняет эту проверку?
Если это на Router
событие, хотя, это может не сработать, если обработчик маршрута был вызван непосредственно (не проходя trigger:true
и призывая API.handlePrivateRoute()
непосредственно
Вы были в состоянии решить проблему?Если ответ вам помог, вы должны принять его или создать свой собственный ответ, если ничего не помогло. –