我有一些 Meteor 方法,我想要保护它们,以便只有特定的用户才能从客户端调用它们。不过这些方法也被服务器使用。我通过this.userid传递了用户ID,因此我可以检查用户是否已登录并且是否允许进行调用,没问题。但是,当我需要从服务器端调用该方法时,如何确定它是服务器调用,以便允许该方法执行呢?检查是否存在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;
}