首先,你需要让你的数据“不可破解”,看看发布功能:http ://docs.meteor.com/#meteor_publish
因此,在您的产品的 Meteor.publish 函数中,您应该执行以下操作:
这确保客户只有在登录并拥有经过验证的帐户时才能看到产品。他们仍然可以登录,但在他们的帐户得到验证之前看不到产品。
服务器js
Meteor.publish("productinfo", function () {
user = Meteor.users.findOne({_id:this.userId})
if(user) {
if(user.emails[0].verified) {
//You can put some extra logic in here to check which product the user has, if you're selling or something like that
return Products.find({});
}
}
});
请记住,您需要删除autopublish
哪个流星使用以使生活更轻松,它基本上将所有集合发布给用户,但您想限制某些信息,因此您应该删除它
其次,您需要处理模板上的数据,以便如果用户未登录模板,则内容不可见。因此,即使在浏览器最初加载的那一步中,他们也不会看到产品
客户端JS
Meteor.subscribe("productinfo");
Template.products.products = function() {
if(Meteor.userId()) {
if(Meteor.user().emails[0].verified) {
return Product.findOne({_id:"your product id"});
}
}
}
这样,模板助手会检查用户是否已登录并且他们是否拥有经过验证的帐户。此外,如果在客户端更改了代码,由于发布功能,他们将看不到产品。