2013-07-24 3 views
3

ОК, поэтому, когда мое приложение запускается после первого входа в систему, я хочу перенаправить пользователя на другую страницу.Как перенаправить нового пользователя на другую страницу только один раз?

В моем коде сервера я это

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

, но я хочу, чтобы пользователи были перенаправлены на другую страницу, если они уже были на более чем один раз, так что я есть это в моем клиентском коде, он по умолчанию всегда клиент, что я делаю неправильно?

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

ответ

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

+0

хм спасибо, но им ищет что-то другое, я думаю, или нужно немного больше помощи, когда первый раз пользователь подписывает, я хочу сообщение для появляются на экране в/new, но при последующих входах я не хочу, чтобы это сообщение появлялось, поэтому моя дилемма пытается понять, как сделать это одно время – flylib

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» в коллекции пользователя

Смежные вопросы