Meteor React:在渲染页面之前确保用户登录的最简单方法是什么?

时间:2017-06-08 07:09:11

标签: meteor meteor-react meteor-useraccounts

情况:

  • 我在流星应用程序中使用React。
  • 我的身份验证包:useraccounts:core; gadicc:blaze-react-component
  • 我还使用{{> atForm }}在我的反应组件中展示<Blaze template="atForm" />模板=&gt; <Mypage />

问题:

我不知道保护特定网页的正确语法应该是什么,如useraccounts guide 所述,但反应

假设我想要保护从{./mypage.jsx'导入的{{> ensureSignedIn template="myTemplate"}}

如何通过<Mypage />致电<Blaze template="atForm" template={Mypage} />并重新“myTemplate”

我试了var interval = null; window.onload = function() { interval = setInterval(callFunc, 5000); }; function callFunc() { $("#ajax_refresh_and_loading").trigger("click"); } 没有成功......

甚至可以制作这样的东西吗?

2 个答案:

答案 0 :(得分:0)

您可以在Meteor.userId()中查看ComponentWillMount(),设置状态并在render()中查看。或者在路由器中使用某种检查

答案 1 :(得分:0)

我找到了解决方案:

使用kadira:flow-router Meteor的软件包,使用react-layoutuseraccounts:flow-routing,我可以做类似的事情:

FlowRouter.route('/private', {
  triggersEnter: [AccountsTemplates.ensureSignedIn],
  action: function() {
    ReactLayout.render(Mypage, {myprops: myprops.value});
  }
});

似乎这一切都发生在triggersEnter: [...]密钥中。

更多详情here