Meteor.loginWithPassword()
साथ में एक उपयोगकर्ता में प्रवेश करके या Accounts.createUser
(दोनों क्लाइंट साइड) के साथ एक नया बनाने, मैं उनकी कॉलबैक में पुष्टि कर सकते हैं कि Meteor.user()
वास्तव में पूरी तरह से तैयार रिकॉर्ड का गुण होता है के बाद।Meteor.user() रिटर्न केवल अपने _ id
{ _id: "XXX",
profile: {
name: "Joe Shmoe",
thumbnail: "http://www.YYY.com/ZZZ.jpg"
},
username: "joeshmoe" }
इसके अलावा, the official docs,
डिफ़ॉल्ट रूप से के अनुसार, वर्तमान उपयोगकर्ता के उपयोगकर्ता नाम, ईमेल और प्रोफ़ाइल ग्राहक के लिए प्रकाशित कर रहे हैं।
तो, किसी को भी क्यों बता सकते जब मैं अपने टेम्पलेट में इन क्षेत्रों तक पहुँचने का प्रयास thusly
Template.login.user_name = function() {
return (Meteor.userId() ? Meteor.user().profile.name : '')
};
यह Meteor.user()
के कारण विफल रहता है केवल अपने वास्तविक गुण में से कोई भी साथ {_id: "XXX"}
लौटने हो सकता है? अर्थात। उपयोगकर्ता निश्चित रूप से लॉग इन है, लेकिन उपयोगकर्ता ऑब्जेक्ट अचानक खो गया/इसकी सभी संपत्तियों को छुपा रहा है।
कोई भी जानता है कि समस्या क्या हो सकती है?
बहुत धन्यवाद।
संपादित करें:यह लिखने के इस समय नवीनतम संस्करण मीटियर 0.5.4 के साथ होता है। स्वीकृत उत्तर वास्तव में इस मुद्दे को हल करता है; कभी-कभी Meteor.userId()
सर्वर से बाकी ऑब्जेक्ट पहुंचने से पहले ही मान्य है। सबको धन्यवाद।
मैंने उन्हें सर्वर पर प्रकाशित करने और क्लाइंट पर उन्हें सदस्यता लेने की भी कोशिश की, लेकिन कोई बदलाव नहीं हुआ। मुझे ऐसा करने की ज़रूरत नहीं है। '// सर्वर Meteor.publish (" UserData ", function() { वापसी Meteor.users.find ({_ आईडी: this.userId} {क्षेत्रों: {प्रोफाइल: 1, उपयोगकर्ता नाम: 1}}); }); ... // ग्राहक Meteor.autosubscribe (function() { Meteor.subscribe ("UserData"); }); ' – cneuro
तो मैं पूरे कॉल एक गेटर विधि में Meteor.methods में डाल दिया, पर शक सुरक्षा के लिए कुछ डीबी एक्सेसर्स को अस्वीकार करने के लिए टेम्पलेट संदर्भ, लेकिन यह वही समस्या है। '// ग्राहक Meteor.methods ({ उपयोगकर्ता नाम: फ़ंक्शन() { वापसी Meteor.user()। Profile.name; }); ... Template.login.user_name = function() { वापसी (Meteor.userId()? उल्का।कॉल ("userName"): '') }; ' – cneuro
उल्का का संस्करण क्या है? –