In primo luogo, si è necessario rendere i dati 'unhackable', date un'occhiata alle funzioni di pubblicare: http://docs.meteor.com/#meteor_publish
Quindi nel tuo funzione Meteor.publish per il vostro prodotto si dovrebbe fare qualcosa di simile :
Ciò consente al client di vedere il prodotto solo se è stato effettuato il login in & con un account verificato. Possono ancora accedere ma non possono vedere i prodotti fino a quando il loro account non viene verificato.
Server 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({});
}
}
});
Tenete a mente è necessario rimuovere autopublish
che meteora utilizza per rendere la vita un po 'più facile, pubblica praticamente tutte le collezioni verso il basso per l'utente, ma si desidera limitare certi info quindi è necessario rimuoverlo
In secondo luogo è necessario gestire i dati sul modello in modo che se l'utente non ha effettuato l'accesso nel modello non è visibile. Quindi, anche in quel passo quando il browser viene inizialmente caricando non vedranno i prodotti
client JS
Meteor.subscribe("productinfo");
Template.products.products = function() {
if(Meteor.userId()) {
if(Meteor.user().emails[0].verified) {
return Product.findOne({_id:"your product id"});
}
}
}
In questo modo i controlli del modello di supporto se l'utente è connesso & hanno un verificato account. Inoltre, se il codice è stato modificato sul lato client, non vedrebbe il prodotto a causa della funzione di pubblicazione.
impressionante, grazie mille! –