gpt4 book ai didi

javascript - meteor :如何检测用户是否通过身份验证

转载 作者:行者123 更新时间:2023-11-30 12:42:00 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 accounts-github。工作完美,但我有一个问题。

在我的一个模板中我这样做

Template.bar.rendered = function () {
if (Meteor.user()) {
// setup stuff
}
}

问题在于,如果用户最初没有登录,则不会执行此代码(没关系)。但是当用户验证此代码不会再次执行。所以问题是我如何在模板中监听这个变化(不必在 rendered 函数中!)?

最佳答案

您可以使用 Deps.autorun。 ( http://docs.meteor.com/#deps_autorun )

通常 Deps.autorun 会为您的整个 Meteor 应用程序运行。如果你想让它只在每个模板上运行,你需要在渲染和销毁的模板回调中创建和停止它

例如

var loginRun;

Template.bar.rendered = function() {
loginRun = Deps.autorun(function() {
if(Meteor.user()) {
//Stuff to run when logged in
}
});
}

Template.bar.destroyed = function() {
loginRun.stop();
}

如果您不需要它在每个模板上运行(只需要它在任何模板上为您的应用程序运行一次),那么您可以在您的任何位置单独使用 Deps.autorun客户端代码。

Meteor.user() 是响应式(Reactive)的,它将确保 Deps.autorun 回调在它发生变化时再次运行,因此理论上您可以在用户登录或注销时使用它来执行操作。

其他替代方案是在 atmosphere 上有一个包提供登录和注销 Hook ,尽管它们基本上会像上面那样使用 Deps.autorun 来工作。参见 https://github.com/BenjaminRH/meteor-event-hooks

关于javascript - meteor :如何检测用户是否通过身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com