Müşterimin bir koleksiyona erişmesini istemediğimi varsayalım, ancak istemcimin bu koleksiyondaki nesneler hakkında belirli sorular sormasını istiyorum. Bunu nasıl başarabilirim?Sunucudan değerler alma
Örnek olarak, bu reklam an giriş kullanıcı olup olmadığını bilmek istiyorum diyelim. Bir kullanıcı ilk giriş yaptığında Ben kaybolup Session
ve çerez kullanıcının veritabanı kimliği. Şu anda, uygulama, bir kullanıcı elbette şimdi kundakçı açıp Session.set("user_id", "foo")
demek ve şimdi oturum ediyorum çünkü çok güvensiz !Session.equals("user_id", null)
, eğer kaydedilir söylüyor.
İstemci erişimi olmasını istemiyoruz Bu noktada Kullanıcı koleksiyonuna. Bu koleksiyona erişimi olan tek istemci kodu, kendisini korumak için kendi kendini yürütme işlevine eklenmiştir (Meteor'da güvenliği yapmanın doğru yolu olup olmadığından emin değilim, bu yüzden bu satırlarda bir şeyler önermek için çekinmeyin. de). Bunun yerine, bazı sunucu tarafı kodlarını çağırmak ve oturumda ayarlanan kimliği iletmek ve geçerli bir kullanıcı olup olmadığını bana bildirmek istiyorum. İşte
kere ayarladıktan görmek istiyorum nasıl:
// client
function logged_in() {
return SomeServerMethodThatValidatesUserId(Session.get("user_id"));
}
Meteor.methods
Meteor.call
uyumsuz bir geri arama gerçekleştirir beri, tasarıyı uygun görünmemektedir. Pub/alt model biraz daha umut verici görünüyor, ancak belgelere göre nasıl çalıştığından emin değilim.
İstemcide bazı değerler ayarlamak için yayın işleyicisinden this.set
numaralı telefonu aramamı öneririm, ancak bu değerlerin kullanılabilir olduğu yeri belirleyemiyorum. Ya da belki de pub/alt model bunun için doğru değildir ve eksik olduğum başka bir yol vardır. Herhangi bir tavsiye takdir edilir!
Bu cevaba Meteor geliştiricilerinden biri tarafından bakın: http: // stackoverflow.com/questions/10115042/nasıl yapılır-client-side-mongodb-api/10116342 # 10116342 İstemcinin ve sunucunun isteğe bağlı mongo komutlarını yürütmesine izin veren varsayılan "eğitim çarkları" nı nasıl devre dışı bırakacağınızı gösterir. Daha sonra sadece Meteor.methods ve Meteor.publish aracılığıyla istemciye istediğiniz şeyi gösterebilirsiniz. Bu Meteor auth paketi bırakıldığında basitleştirilecektir. – rmarscher