繁体   English   中英

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

[英]How to redirect after user log in with Iron Router?

我想在用户登录时重定向到“ /”主页,我​​设法用this.render重定向到“ /”主页,但随后它仅显示主页,无法访问其他URL。

 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,但是它不起作用。 请问什么是正确的解决方案?

还有如何处理受限制的路由的精细描述这里

绍贝尔先生的方法让您需要登录才能访问某些路线。 如果您尝试直接访问受限路由,然后进入该页面,它将在这两个页面之间建立您的登录页面。

您可以使用currentUser帮助器在yaksList template上完成yaksList template

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

或使用router.go

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

更新

但是当他们想要上/下投票时需要登录

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

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
     }
   }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM