如何仅将新用户重定向到不同的页面一次?

时间:2013-07-24 02:46:43

标签: meteor

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

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

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

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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'添加到用户集合