我有一个传统的IronRouter设置使用Router.onBeforeAction
挂钩将用户重定向到登录页面,如果他们试图访问需要登录的页面。
但是,如果尝试访问的路由 - 需要登录用户 - 具有订阅的waitOn
属性,则应用程序将挂起。
过了一会儿,我发现,我必须在if( Meteor.user() )
块中包装所有订阅才能使重定向工作。
我想我明白了原因,但是在waitOn
订阅中检查Meteor用户感觉有点奇怪。有没有办法取消onBeforeAction
挂钩功能中的订阅?
答案 0 :(得分:0)
没有。当你订阅params时,检查参数是一个好习惯。将此检查置于onBeforeAction
将使您的申请难以维护。您需要一个需要登录的页面/路由列表,以便您可以重定向到home / login / etc.如果要在需要登录的页面上显示某些信息,而不是重定向,则可以显示一些数据。在每个控制器上进行此验证要容易得多。