到目前为止,我一直在使用account-ui和{{> loginButtons}}我的应用程序,一切都很好。我最近实施了自己的注册/登录,因此我可以进行自己的自定义,一切正常(我可以注册,创建新帐户,然后使用该新帐户登录)。
问题在于,在注册或使用我的自定义登录信息登录后,任何被渲染的模板都会冻结(无法向上/向下滚动)。我必须刷新页面才能工作(需要再次创建模板)。所以我在我的Meteor.loginWithPassword
回调中有一个黑客用来在用户登录后重新加载页面而没有错误。这肯定不是Meteor方式,给用户带来了不好的体验。所以我一定要避免这种情况。但我似乎无法找到解决方案。
Meteor.loginWithPassword(email, password, function(error) {
if (error) {
alert('Invalid credentials - please check your email/password and try again');
} else {
Meteor._reload.reload()
}
});
我的Iron路由器中有一个设置:"如果用户未登录,则渲染登录页面,如果已登录使用,请继续执行下一个操作"。可能是这里的东西吗?
var requireLogin = function() {
if (! Meteor.user()) {
if (Meteor.loggingIn()) {
this.render('loading');
} else {
this.render('landingpage');
}
} else {
this.next();
}
}
Router.onBeforeAction(requireLogin, {except: 'landingpage'});
或者我应该在Meteor.loginWithPassword()
回调函数中做更多的事情?
我已花了大约30个小时的时间,并决定最好寻求帮助,而不是浪费更多时间并且没有结果。 (虽然在这个过程中了解了很多关于铁路由器和帐户的信息 - 所以这是一个优点)。
感谢任何帮助/新观点!提前谢谢!
这不是问题
通过几个小时的逻辑和推理,(我在开玩笑,这都是试验和错误),我通过将登录模板放在主布局而不是登陆页面来实现它。用户登录后,Meteor会有效地破坏目标网页模板,并使用我的登录模板。我的猜测是,这导致我的Meteor.loginWithPassword()回调无法正常启动。哦,好几个小时我都没有回来。
感谢那些花时间查看问题的人