एक उल्का ऐप बनाते समय, क्या उपयोगकर्ता द्वारा प्रमाणीकृत होने तक क्लाइंट को सभी जेनरेट की गई जावास्क्रिप्ट को सेवा / लोड करना संभव नहीं है?
अगर कोई मेरे टेम्पलेट, मॉडल, हेल्पर्स इत्यादि नहीं देख पाता तो मैं खुश रहूंगा ...
स्पष्टीकरण:
यह सामान / सर्वर के तहत सामान डालने, या पब / उप के साथ सही काम करने के बारे में नहीं है।
यह अनधिकृत उपयोगकर्ताओं के लिए आवश्यक से अधिक नहीं भेज रहा है, न कि क्योंकि यह एक सुरक्षा जोखिम है, बल्कि दुनिया से जितना संभव हो सके छिपाने के लिए।
उत्तर:
जवाब के लिए 0 № 1मैं इसका उपयोग कर रहा हूँ रूटर इसे पूरा करने के लिए पैकेज।
अपनी मुख्य एचटीएमएल फ़ाइल में, आप जोड़ते हैं {{renderPage}}
जहां आप राउटर टेम्पलेट प्रस्तुत करना चाहते हैं। फिर जब आप अपने मार्गों को परिभाषित करते हैं, तो आप निर्दिष्ट कर सकते हैं कि पथ, और किसी भी अन्य चर के आधार पर कौन सा टेम्पलेट / टेम्पलेट प्रस्तुत किया जाता है।
उदाहरण के लिए, यदि आप किसी भी संरक्षित टेम्पलेट्स को प्रस्तुत किए बिना लॉगिन स्क्रीन दिखाते हैं, तो आप निम्न कार्य कर सकते हैं:
Meteor.Router.page();
Meteor.Router.add({
"/": function() {
if (Meteor.userId()) {
return "protectedContentTemplate";
}
else {
return "userUnauthorizedTemplate";
}
},
});
बेशक, आपको हमेशा अपने संग्रह को बंद कर देना चाहिए Meteor.publish()
तथा Collection.allow()
कार्य करता है ताकि अनधिकृत उपयोगकर्ता उन सूचनाओं तक पहुंच न प्राप्त कर सकें जिनके पास उन्हें पहुंच नहीं होनी चाहिए।
जवाब के लिए 0 № 2
मुझे यकीन है कि इस समय एक उल्का ऐप के भीतर स्क्रिप्ट को चुनिंदा लोड करना संभव नहीं है। एक अपवाद यह है कि आप इसे किसी भी संवेदनशील कोड को सुरक्षित रख सकते हैं /server
निर्देशिका (जो क्लाइंट को नहीं भेजी जाती है) और डेटा को लॉक करें @ पैट्रिक कॉफ़ी ने सुझाव दिया (उल्का का उपयोग भी method
रों)। यदि आप ऐसा करते हैं, तो आपको क्लाइंट को अपना पूर्ण मॉडल स्कीमा, प्रमाणीकरण नियम या संवेदनशील एल्गोरिदम प्रकट नहीं करना पड़ेगा, और आप कड़ाई से नियंत्रित कर सकते हैं कि कौन से रिकॉर्ड और यहां तक कि रिकॉर्ड के क्षेत्र क्लाइंट को दिखाई दे रहे हैं। यह अच्छी तरह से काम करता है, और आप सुविधा / प्रदर्शन बनाम सुरक्षा का स्तर चुन सकते हैं जो आप चाहते हैं कि आप अपना एपीआई कैसे खोलें।
यदि आपके टेम्पलेट्स और हेल्पर्स संवेदनशील हैं, तो आपको सर्वर-साइड रेंडरिंग शुरू होने तक प्रतीक्षा करनी होगी (यह रोडमैप पर है) या उल्का के बिना अपना खुद का समाधान पकाएंमदद, लेकिन मुझे लगता है कि सवाल पर थोड़ा गहराई देखने का कोई कारण हो सकता है। आपकी चिंता का आधार यह प्रतीत होता है कि प्रमाणीकृत उपयोगकर्ता किसी भी तरह गैर-प्रमाणीकृत उपयोगकर्ताओं की तुलना में अधिक भरोसेमंद होंगे, लेकिन ज्यादातर स्थितियों में (यहां तक कि किसी कंपनी के अंदर भी), ऐसे उपयोगकर्ताओं की संभावना है जो अविश्वसनीय हैं - या जिनके खाते हैक हो जाओ - और इन लोगों को हमेशा ब्राउज़र पर भेजे गए किसी भी चीज़ तक पहुंच होगी। तो उस परिप्रेक्ष्य से, यह सुनिश्चित करना समझ में आता है कि आप टेम्पलेट्स या क्लाइंट-साइड कोड में महत्वपूर्ण रहस्य नहीं डालते हैं। अधिकांश ऐप्स के लिए, हालांकि, टेम्पलेट्स और हेल्पर्स संवेदनशील नहीं होंगे, और यदि आप अपना सर्वर अच्छी तरह से सेट अप करते हैं, हैक किए गए टेम्पलेट्स "सामान्य टेम्पलेट्स" की किसी भी चीज़ तक पहुंचने में सक्षम नहीं होंगे।