Account onLogin钩子流星循环



我正在使用Meteor构建一个应用程序。我想在每次用户登录到我的应用程序时创建一个新的Cart ID(作为一个可以存储物品的购物车)。但是,每次在应用程序中打开一个新页面时,都会创建一个新的Cart ID。这是否意味着每当我点击应用程序中的新页面时,应用程序都会"登录"?下面是我的代码:

    Accounts.onLogin(function(user){
            var newCartId = uuid.new()
            Meteor.users.update({_id: user.user._id}, {$set: {'profile.cartId': newCartId}})
            console.log('just created a new Cart ID at ' + Date());
    });

是的,这是真的。

每次打开一个新页面,您都没有登录。当localStorage令牌对您进行身份验证时(类似于cookie的验证方式),您将自动登录。当你自动登录时,这个钩子也会运行。

很难定义用户如何登录。Meteor的onLogin钩子在任何类型的login方法上触发。

你可以自定义何时运行钩子:

Accounts.onLogin(function(info) {
    if(info.methodName == "createUser") {
        console.log("This user logged in by signing up");

    }else if(info.type == "password") {
        console.log("This user logged in by using his/her password");

    }else if(info.type == "resume") {
        console.log("This user logged in using a localStorage token");
    }
});

因此,在这里您可以使事件仅在用户使用其密码登录时触发。甚至当他们注册的时候。当用户打开一个使用localStorage令牌注册的新页面时,你可以使用它来避免运行钩子。

相关内容

  • 没有找到相关文章

最新更新