2

ログインしているかどうかを確認するかなり標準的なフィルターがあります。

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');
            }
    });
}
4

0 に答える 0