帐号onLogin hook Meteor循环

Tru*_*ran 7 javascript account hook login meteor

我正在使用Meteor构建应用程序.我想在每次用户登录我的应用程序时创建一个新的购物车ID(作为我可以存储物品的购物车).但是,每次在应用程序中打开新页面时,都会创建一个新的购物车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());
    });
Run Code Online (Sandbox Code Playgroud)

Aks*_*hat 10

是的,这是真的.

每次打开新页面时都没有登录.当localStorage令牌验证您时,类似于cookie的操作,您将自动登录.当您自动登录时,此挂钩也将运行.

很难定义用户如何登录.Meteor的onLogin挂钩会触发任何类型的登录方法.

但是,您可以自定义何时运行挂钩:

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");
    }
});
Run Code Online (Sandbox Code Playgroud)

因此,只有当用户使用他或她的密码登录时,才能使事件触发.甚至当他们注册时.如果用户打开一个使用localStorage令牌进行注册的新页面,则可以使用此选项来排除运行挂钩.