Meteor.js登录事件

时间:2013-05-03 01:53:37

标签: javascript meteor

所以我对meteor框架和JavaScript一般都很陌生,但我正在研究一个使用框架的小项目来尝试让自己从头开始。基本上我在微博客网站上工作。

目前用户可以通过多种服务登录,fb,谷歌等。我通过插入所需网址的服务ID检索他们的头像,这一切都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着我需要在登录成功后立即运行一些JavaScript。此时我无法在onLogin样式事件中找到任何内容。并且在用户登录时将一个把手模板拼凑在一起以运行代码。但是这段代码似乎只运行一次,如果用户退出然后又回来,他们就不再看到他们的头像了。

有没有人知道我可以用来做这件事的事件?

这是我的hacky模板

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

这里是它调用的js

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

我真的很感激帮助,我确信这是一件很简单的事情,我忽略了但是我似乎无法理解它!

谢谢,彼得。

2 个答案:

答案 0 :(得分:18)

我不知道您执行此操作的方式是否最合适,但在客户端亲自执行以下操作以检测用户是否已登录:

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

答案 1 :(得分:2)

如果您使用谷歌登录或任何其他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
  }
});