2014-12-28 2 views
0

У меня есть обычные настройки IronRouter используя Router.onBeforeAction крючок для перенаправления пользователей на страницу входа в систему, если они пытаются получить доступ к странице, которая требует, чтобы быть авторизованы.IronRouter Router.onBeforeAction перенаправлять и waitOn

Однако, если маршрут один пытается получить доступ - который требует зарегистрированного пользователя - имеет свойство waitOn с подписками, приложение просто зависает.

Через некоторое время я выяснил, что мне нужно обернуть все подписки в блоке if(Meteor.user()), чтобы получить работу перенаправления.

Я думаю, я понимаю причину, но мне кажется странным, что нужно следить за пользователями Метеор в подписках waitOn. Есть ли способ отменить подписки в функции крюка onBeforeAction?

+0

Наведите код, который вы сделали до сих пор, чтобы мы могли помочь вам более подробно – Sindis

ответ

0

Нет. Когда вы подписываетесь с параметрами, рекомендуется проверить аргументы. Установка этой проверки на onBeforeAction сделает ваше приложение более сложным для обслуживания. Вам понадобится список страниц/маршрутов, которым нужен логин, чтобы вы могли перенаправить на домашнюю страницу/login/etc. Если вы хотите отобразить некоторую информацию на странице, для которой требуется логин, вместо перенаправления вы можете отобразить некоторые данные. Гораздо проще выполнить эту проверку на каждом контроллере.

Смежные вопросы