द्वारा एक उल्का विधि को बुलाया गया था, मेरे पास कुछ Meteor methods है और मैं उन्हें सुरक्षित करना चाहता हूं ताकि केवल कुछ उपयोगकर्ता ही ग्राहक से उन्हें कॉल कर सकें। हालांकि सर्वर द्वारा इन विधियों का भी उपयोग किया जाता है। मुझे user.userid में userid पास कर दिया गया है, इसलिए मैं जांच सकता हूं कि उपयोगकर्ता लॉग इन है या नहीं और यदि उन्हें कॉल करने की अनुमति है, तो कोई समस्या नहीं है। लेकिन जब मुझे सर्वर पक्ष से विधि को कॉल करने की भी आवश्यकता होती है, तो मैं कैसे निर्धारित करूं कि यह एक सर्वर कॉल था इसलिए मैं विधि को निष्पादित करने की अनुमति दे सकता हूं। यह जांचने के लिए कि यह कोई सर्वर कॉल नहीं है, यह निर्धारित करने के लिए कोई भी नहीं है। उपयोगकर्ता सर्वर कॉल को अनधिकृत उपयोगकर्ताओं को विधि को कॉल करने की अनुमति देता है। मैं यह निर्धारित करने का एक तरीका ढूंढ रहा हूं कि सर्वर द्वारा विधि को कॉल किया गया था, इसलिए मैं इसे अनुमति दे सकता हूं और अभी भी अनधिकृत उपयोगकर्ताओं को विधि को कॉल करने से रोक सकता हूं।क्या यह निर्धारित करना संभव है कि सर्वर
Meteor.methods({
makeCoffee: function (time) {
check(time, Number);
if(calledByServer || (Meteor.user() && Meteor.user().profile.usertype === 'coffee dude')){
//Makin' Coffee
}
else
throw new Meteor.Error(404, "Can't find my pants");
return "Coffee will be made at " + time;
}
शायद मेकॉफी वास्तव में सर्वर पर एक फ़ंक्शन है। क्लाइंट एक्सेस को इसे विधि में लपेटकर नियंत्रित किया जा सकता है जो उपयोगकर्ता आईडी की जांच करता है। सर्वर कॉल हमेशा फ़ंक्शन पर सीधे जाते हैं। – user728291
सच है, यह समाधान है जिसका उपयोग मैं संभवतः समाप्त कर दूंगा। लेकिन मैं विभिन्न फाइबर में एकाधिक विधियों को चलाने के लिए इस .unblock() का उपयोग करने जैसे उल्का विधियों के कुछ फायदे छोड़ देता हूं। – Dsyko