まず、データを「ハッキング不能」にする必要があります。公開機能を確認してください: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"});
}
}
}
このようにして、テンプレートヘルパーは、ユーザーがログインしていて、確認済みのアカウントを持っているかどうかを確認します。さらに、クライアント側でコードが変更された場合、公開機能のために製品は表示されません。