Javascript Meteor.js登录事件
所以我对meteor框架和JavaScript一般来说是比较陌生的,但我正在做一个小项目,使用该框架来尝试让自己达到最新水平。基本上我是在一个微博网站上工作 目前,用户可以通过多种服务登录,如fb、谷歌等。我通过插入所需url的服务id检索他们的头像,所有这些都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着登录成功后我需要立即运行一些JavaScript。此时此刻,我在onLogin风格的活动中找不到任何东西。并拼凑了一个把手模板,在用户登录时运行代码。然而,这段代码似乎只运行一次,如果用户注销后又重新登录,他们就再也看不到自己的化身了 有人知道我可以用什么活动来做这件事吗 这是我的黑客模板Javascript Meteor.js登录事件,javascript,meteor,Javascript,Meteor,所以我对meteor框架和JavaScript一般来说是比较陌生的,但我正在做一个小项目,使用该框架来尝试让自己达到最新水平。基本上我是在一个微博网站上工作 目前,用户可以通过多种服务登录,如fb、谷歌等。我通过插入所需url的服务id检索他们的头像,所有这些都很好。但我希望用户能够在登录后立即看到自己的头像,这意味着登录成功后我需要立即运行一些JavaScript。此时此刻,我在onLogin风格的活动中找不到任何东西。并拼凑了一个把手模板,在用户登录时运行代码。然而,这段代码似乎只运行一次,
{{#if currentUser}}
{{> userInput}}
{{/if}}
这是它调用的js
$('#inputAvatar').css('background-image', 'url('+avatarUrl+')');
我真的很感激你的帮助,我相信这是我忽略了的简单的事情,但我似乎无法理解
谢谢你,Peter。我不知道你这样做是否最合适,但我个人会在客户端执行以下操作,以检测用户是否登录:
Tracker.autorun(function(){
if(Meteor.userId()){
//do your stuff
}
});
如果您使用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
}
});
谢谢,我知道这很明显!代码现在运行良好,但由于某些原因,我更新背景图像的代码无法工作。我会注意到它在进入chromes控制台时有效,但在Deps.autorun方法
$('inputAvatar').css('background-image','url(\'+avatarURL+'\'))中运行时无效代码>更新我实际上解决了我的模板的.rendered函数与Deps.autorun函数相结合的问题。谢谢你的帮助!我可以问你为什么需要在客户端上运行这个吗?它现在真的让我搞不清metore.userId()在服务器上的作用。Deps
已重命名为Tracker
。现在就是这样。回调应该可以用于任何Meteor.loginWith()方法,包括Meteor.loginWithPassword()。我不想在这里提到OAuth,把任何人都甩了。