3

好的,所以当我的应用程序在您第一次注册后启动时,我想将用户重定向到不同的页面。

在我的服务器代码中,我有这个

Accounts.onCreateUser(function(options, user) {
Hooks.onCreateUser = function () {
Meteor.Router.to('/newUser');
   }
});

但是如果用户已经访问过一次以上,我希望用户被重定向到另一个页面,所以我在我的客户端代码中有这个,它总是默认为客户端,我做错了什么?

Hooks.onLoggedIn = function () {
Meteor.Router.to('/new');
}
4

2 回答 2

2

如果你想重定向一个签名的用户,只需在用户对象中设置一个标志来表示他是否被重定向:

Hooks.onLoggedIn = function (){
  if(!Meteor.user()) return;
  if(!Meteor.user().returning) {
    Meteor.users.update(Meteor.userId(), {$set: {returning: true}});
    Meteor.Router.to('/new');
  }
}

确保发布和订阅returning用户收藏领域!


如果您想为所有访问者提供类似的功能,请使用 cookie。

Hooks.onLoggedIn = function (){
  if(!Cookie.get('returning')) {
    Cookie.set('returning', true);
    Meteor.Router.to('/new');
  }
}

这是方便的软件包:https ://atmosphere.meteor.com/package/cookies

于 2013-07-24T06:54:59.967 回答
0

创建集合“ExistingUsers”以跟踪。

 if (Meteor.isClient) {
  Deps.autorun(function () {
  if(Meteor.userId())
//will run when a user logs in - now check if userId is in 'ExistingUsers'
//If not display message and put userId in 'ExistingUsers'
});

或者将字段“SeenMessage”添加到用户集合

于 2014-01-26T20:54:33.787 回答