Подтвердить что ты не робот

Meteor.js при регистрации

Итак, я довольно новичок в структуре метеоров и JavaScript в целом, но я работаю над небольшим проектом, использующим фреймворк, чтобы попытаться довести до нуля. В основном я работаю на сайте микро-блогов.

В настоящий момент пользователи могут входить в систему через несколько сервисов, fb, google и т.д. И я получаю их аватары через служебный идентификатор, вставленный в необходимый URL-адрес, все это прекрасно работает. Но я хочу, чтобы пользователь мог увидеть свой собственный аватар, как только они вошли в систему, что означает, что мне нужно запустить JavaScript сразу после успешного входа в систему. На данный момент я не могу найти что-либо в событии стиля onLogin. И взломали шаблон руля, чтобы запустить код, когда пользователь входит в систему. Однако этот код работает только один раз, и если пользователь выходит из системы, а затем возвращается, они больше не видят свой аватар.

Кто-нибудь знает о событии, которое я могу использовать для этого?

вот мой хакерский шаблон

{{#if currentUser}}
    {{> userInput}}
{{/if}}

здесь js он вызывает

$('#inputAvatar').css('background-image', 'url('+avatarUrl+')');

Я был бы очень благодарен за помощь, я уверен, что это что-то простое, что я упустил из виду, но я не могу понять это!

Спасибо, Питер.

4b9b3361

Ответ 1

Я не знаю, подходит ли то, как вы это делаете, но лично делайте следующее на стороне клиента, чтобы определить, зарегистрирован ли пользователь:

Tracker.autorun(function(){
  if(Meteor.userId()){
    //do your stuff
  }
});

Ответ 2

Если вы используете логин google или любой другой логин o-auth, вы можете передать функцию обратного вызова, которая будет выполняться после входа в систему,

Вот пример кода.

Meteor.loginWithGoogle({
  requestPermissions: ['email']
}, function(error) {
  if (error) {
    console.log(error); //If there is any error, will get error here
  }else{
    console.log(Meteor.user());// If there is successful login, you will get login details here
  }
});