用户使用Iron Router登录后如何重定向?

时间:2015-03-10 23:19:16

标签: javascript meteor iron-router

我想重定向到' /'用户登录时的主页面,我设法使用this.render重定向到' /'主页面,但之后它只显示主页面,无法访问其他网址。



Router.route('/', {name: 'yaksList'})

Router.route('/submit', {name: 'yaksSubmit'});

Router.route('/login', {name: 'accounts'});

Router.onBeforeAction(function() {
  if (Meteor.userId()) {
    this.render('yaksList');
  } else {
    this.next();
  }
});




我尝试使用Router.go(' yaksList')而不是this.render,但它无效。请问什么是正确的解决方案?

2 个答案:

答案 0 :(得分:0)

有关如何处理受限路线here的详细说明。

先生。 Schoebel的方法让您需要登录才能访问某些路线。如果您尝试直接访问受限制的路线,然后将您带到那里,它会在您的登录页面中间设置。

答案 1 :(得分:0)

您可以使用yaksList template帮助程序在currentUser上轻松完成此类操作。

{{#if currentUser}}
   {{> yaksList}}
{{else}}
   {{> login}}
{{/if}}

或使用router.go

Router.go('yaksList'); //在提交按钮上。

<强>更新

  

但他们需要在他们想要upvote / downvote帖子时登录

在事件处理程序上使用验证。

Template.yaksLists.events({
  'click #upVote':function(event,template){
    //some other code here
    //validation
    if(!Meteor.userId()){
      //here you redirect the user to the /login
      Router.go('/login');
     }else{
      //do the up vote stuff
     }
   }
})