Meteor用户登录

时间:2015-02-18 00:57:23

标签: javascript meteor

这是我购物车的路由器。

Router.route('/bag', function () {
  //FIXME: upon refresh, Meteor.user() is an empty object it seems?
  if (Meteor.user()) {
    this.render('Bag', {to: 'content'});
  } else {
    Router.go('/login');
  }
});

当您登录并单击链接转到“/ bag”时,一切都会正确呈现。但是,如果您在“/ bag”页面上刷新页面,则会将我重定向到“/ login”页面。有关Meteor的遗漏吗?我在错误的地方打电话给Meteor.user()吗?

1 个答案:

答案 0 :(得分:2)

多数民众赞成因为Meteor.user()集合还没有准备好,你也有加载模板吗?

尝试把这个

waitOn:function(){
 return Meteor.subscribe('someUsercollectionPublish')
}

还有更多选择可以实现这一目标。

与使用密码包中的helper currentUser一样。

{{#if currentUser}}
  <!-- show bags stuff -->
{{else}}
  {{> login}} <!-- render login Template -->
{{/if}}

或使用iron:router方法onBeforeAction

var requireLogin = function() {
  if (! Meteor.user()) {
    this.render('login');
  } else {
    this.render('bag');
  }
}

Router.onBeforeAction(requireLogin, {only: 'bags'});