2
我想發佈一些關於我的用戶的有限用戶信息,其想法是我的web應用的管理員角色可以查看電子郵件地址和用戶名(最後一個在配置文件數據中)。流星:發佈一些用戶數據
Meteor.publish("usersSpecificDataforAdmin", function() {
return Meteor.users.find({}, {fields: {
'profile': 1,
'emails': 1,
'roles': 1
}});
}); 我然後訂閱這在我的路由器:
adminRoutes.route('/users', {
name: 'adminUsersList',
subscriptions: function (params, queryParams) {
this.register('adminUsersList', Meteor.subscribe('usersSpecificDataforAdmin'));
},
action: function (params, queryParams) {
BlazeLayout.render('layout_frontend', {
top: 'menu',
main: 'adminUsersList',
footer: 'footer'
});
}
});
在模板中,我使用下面顯示用戶的電子郵件地址:「{{emails.address}}」,但不起作用。我可以顯示所有其他信息。
我有以下問題:
- 我怎麼可以在模板
- ,即使我沒有在發佈中添加密碼或服務字段顯示用戶的電子郵件地址,它是發(做Meteor.user())是揭示所有的信息,包括密碼等,這在我看來是一個安全問題。我如何禁用這個發佈?
謝謝。我原來的帖子確實犯了一個錯誤。我編輯了原始問題以包含正確的代碼。您對第4項的建議確實有效。唯一奇怪的是,'profile:1'雖然在瀏覽器中執行'Meteor.user()'時不顯示,但模板正在顯示它。當我刪除'個人資料:1'時,模板不顯示它。 – wiwa1978
您的路線中沒有「waitOn」,在訂閱被提取時可能會有延遲。我會使用'waitOn'而不是'subscriptions' –