是否可以确定服务器是否调用了Meteor方法

Dsy*_*yko 9 javascript meteor

我有一些Meteor方法,我想保护它们,以便只有某些用户可以从客户端调用它们.但是,服务器也使用这些方法.我在this.userid中传递了userid,因此我可以检查用户是否已登录,是否允许他们拨打电话,没问题.但是,当我还需要从服务器端调用该方法时,如何确定它是服务器调用,以便我可以允许该方法执行.检查没有this.userid确定其服务器调用是否允许未经过身份验证的用户也调用该方法.我正在寻找一种方法来确定该方法是否被服务器调用,以便我可以允许它并仍然阻止未经过身份验证的用户调用该方法.

Meteor.methods({
  makeCoffee: function (time) {
    check(time, Number);
    if(calledByServer || (Meteor.user() && Meteor.user().profile.usertype === 'coffee dude')){
          //Makin' Coffee
    }
    else
      throw new Meteor.Error(404, "Can't find my pants");
    return "Coffee will be made at " + time;
  }
Run Code Online (Sandbox Code Playgroud)

Cha*_*row 13

this.connection将是null一个服务器端方法中,如果该方法不是从客户端调用

请参阅this.connection文档.