我有一个非常标准的过滤器来检查您是否已登录:
requireLogin: function(page) {
if (Meteor.user()) {
return page;
} else if (Meteor.loggingIn()) {
return 'loading';
} else {
return 'login';
}
}
现在,当我转到需要登录的页面时,我得到了预期的登录模板,但 url 未更改。但是,如果我只是尝试使用 loginwithpassword 登录,它的 loggingin() 会稍等一下,然后像什么都没发生一样返回登录模板(似乎从未调用过回调函数)。现在,如果我只是使用相同的模板从 /login url 登录,则可以正常登录。
登录代码:
'click .userlogin':function(e, tmpl) {
Meteor.loginWithPassword(
{email: tmpl.find("#emailInput").value},
tmpl.find("#passInput").value,
function(err){
if (err) {
// handle error
Session.set('errorMessage', err.reason || 'Unknown error');
Session.set("showErrorMessage", true);
} else {
// show an alert
Meteor.Router.to('/profile');
}
});
}