Node.js अनुप्रयोगों के लिए प्राधिकरण दृष्टिकोण और डिज़ाइन पैटर्न [बंद]


80

मैं एक आंतरिक एंटरप्राइज़ सॉफ़्टवेयर प्लेटफ़ॉर्म के लिए एक एकाधिक पृष्ठ व्यवस्थापक इंटरफ़ेस बना रहा हूं। विभिन्न API, db क्वेरी और शेल स्क्रिप्ट को एक साथ बांधने वाले बहुत सारे ग्लू लॉजिक के बारे में सोचें।

हम प्रमाणीकरण के लिए नोड.जेएस, एक्सप्रेस फ्रेमवर्क (जेड टेम्पलेट सहित), और एलडीएपी का उपयोग करेंगे।

मैं नोड अनुप्रयोगों में प्राधिकरण के लिए डिजाइन पैटर्न और सर्वोत्तम प्रथाओं के बारे में जानकारी प्राप्त करने के लिए संघर्ष कर रहा हूं। अधिमानतः, मैं भूमिका-आधारित मॉडल का उपयोग करना चाहूंगा क्योंकि मेरे उपयोगकर्ता उस दृष्टिकोण और इसकी देखभाल और खिलाने से परिचित हैं।

मैं नोड.जेएस के लिए नया हूं इसलिए कृपया यह न समझें कि मैंने पहले ही एक मॉड्यूल या लोकप्रिय ब्लॉग पोस्ट देखा है। यह संभावना है कि जानकारी का खजाना है और मुझे नहीं पता कि कहाँ देखना है।

आपके द्वारा प्रदान की जाने वाली किसी भी जानकारी के लिए अग्रिम धन्यवाद!

जवाबों:


63

अपने पहले प्रश्न के अनुसार, आप NodeJs में कुछ प्राधिकरण प्रक्रिया कार्यान्वयन चाहते हैं। मैंने NodeJs के API की संख्या का पता लगाया और उपयोग किया है। मैं उद्यम अनुप्रयोगों के लिए एपीआई का अनुसरण करना पसंद करूंगा।

  • प्रमाणीकरण के लिए: पासपोर्ट या सैटलाइजर यदि एंगुलरजेएस में एसपीए (फ्रंट-एंड) विकसित कर रहा है।

  • : प्राधिकरण के लिए एसीएल । विधियों और बाकी एपीआई पर भूमिका आधारित सुरक्षा। यदि आप RABC, ABAC का उपयोग करना चाहते हैं तो मैं केसिन का उल्लेख करना चाहूंगा ।

दूसरा, आप NodeJs में कुछ कार्यान्वयन और विकास दृष्टिकोण चाहते हैं।

  • NodeJs के लिए आसान और मेरा पसंदीदा डिज़ाइन पैटर्न और फ्रेमवर्क: MVC फ्रेमवर्क, SailsJs । इसकी शुरुआत और मॉड्यूलर वास्तुकला के लिए तैयार है। लंबे समय में कोड प्रबंधन आसान है (एक उद्यम आवेदन के लिए सबसे व्यावहारिक आवश्यकता)। आसान रखरखाव। SailsJs Socket.io के साथ भी अपुष्ट है , जिसके उपयोग से आप अपने प्रोजेक्ट में रियल टाइम मॉड्यूल, विजेट, चैट विजेट बना सकते हैं।

  • एक्सप्रेस आप एक्सप्रेस का उपयोग कर सकते हैं और अपने स्वयं के कस्टम MVC प्रोजेक्ट संरचना को डिज़ाइन कर सकते हैं। यह भी लोकप्रिय और मजबूत है। आप उसी के लोकप्रिय बीज परियोजनाओं को योमन पर पा सकते हैं

  • रेडिस एक कैशिंग या सत्र परत के रूप में। हमेशा अलग कैशिंग या सत्र परत का उपयोग करना अच्छा होता है, क्योंकि यह आपके एप्लिकेशन को क्लाउड से nth इंस्टेंस पर स्केल करने के लिए ब्लॉक नहीं करेगा।

  • आप जियो-लोकेशन , उपयोगकर्ता-उपस्थिति (ऑनलाइन / ऑफलाइन), चैट, पुश-नोटिफिकेशन और कई अन्य वास्तविक समय की विशेषताओं को बनाने के लिए Redis और Socket.io का उपयोग कर सकते हैं ।

  • ORM: जलरेखा । इसके आसान क्वेरी दृष्टिकोण के लिए। यह SBSJ का इनबिल्ट और डिफॉल्ट ORM भी है। यदि आप SailsJs का उपयोग नहीं कर रहे हैं, तो आप Sequelizejs का उपयोग भी कर सकते हैं । मैं डीबी प्रदाताओं द्वारा प्रदान किए गए देशी कनेक्टर्स का उपयोग करने की सिफारिश करूंगा।

  • डेटाबेस: अपनी आवश्यकता के अनुसार। वॉटरलाइन ORM PostgreSQL, MySQL, MongoDB और अधिक का समर्थन करता है।

  • मेरा faviourite दृश्य इंजन: EJS । अपनी प्रस्तुति परत को विकसित करने के लिए नई चीजों को सीखने की आवश्यकता नहीं है। यह SailsJs का इनबिल्ट और डिफॉल्ट व्यू इंजन भी है, इसीलिए मैं SailsJs का प्रशंसक हूं।

मुझे लगता है, मैंने NodeJs में एंटरप्राइज एप्लिकेशन बनाने के लिए सभी महत्वपूर्ण जानकारी कवर की है। मैं नहीं कहता, उपरोक्त पैकेज सर्वोत्तम हैं, लेकिन सहयोगात्मक रूप से, उन्हें किसी भी उद्यम परिदृश्य के लिए सर्वोत्तम रूप से फिट किया जा सकता है। अन्य ज्ञात पैकेज हैं, जिन्हें आप अपनी आवश्यकता के अनुसार उपयोग कर सकते हैं।


2
वॉटरलाइन और sails.js +1
ट्रैविस वेब

@kosnkov इनमें से अधिकांश ठीक हैं। एक्सप्रेस के लिए एक अधिक शक्तिशाली विकल्प के लिए हापीजेएस की जांच करें , और वॉटरलाइन के विकल्प के लिए सीक्वेलाइज करें । मेरी राय में, मुझे लगता है कि SelsJS ओवरकिल है। यदि आप एक R नाखून या Django पृष्ठभूमि से आते हैं, तो आपको बस एक्सप्रेस / हापी और वॉटरलाइन / सीक्वेलाइज़ के साथ ठीक होने के लिए पर्याप्त अवधारणा को समझना चाहिए; यह बहुत अधिक हल्के वजन बनाम पाल है। मैं हापी / सीक्वेलाइज का विकल्प चुनता हूं।
दामुसिक्स

अच्छी सूची है। ब्रूट-फोर्स सुरक्षा के बारे में एक छोटे नोट को जोड़ना भी अच्छा होगा। रेट-लिमिटर-फ्लेक्सिबल जैसे पैकेज एक अच्छे फिट होने चाहिए।
अनिमिर १

15

आरंभ करने के लिए यहां कुछ जानकारी दी गई है:

आशा है कि यह शुरू करना आसान बनाता है।


धन्यवाद! मैं उन लिंक की जांच करूंगा। एक्सप्रेस मार्ग मिडलवेयर का उदाहरण मेरे उपयोग के मामले के बहुत करीब लगता है
डेव स्निगियर

53
अजीब बात है कि आपके उत्तर में प्राधिकरण शब्द शामिल नहीं है :)
13'13

1
बिल्कुल सही जवाब, मुझे बहुत मदद मिली। प्राधिकरण शब्द के बिना भी :)
श्री बॉडिन



3

एक अन्य विकल्प CASL का उपयोग करना है जो MongoDB के साथ बहुत अच्छा एकीकृत है। CASL पर आधारित प्राधिकरण को itegrate करने के तरीके को व्यक्त करने का एक लेख भी है - https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-b94eb2e2b73b


0

मुझे कहना चाहिए कि नोड-प्राधिकरण भी एक अच्छा उम्मीदवार है। विचार एसएपी (ईआरपी प्रदाता) से उधार लिया गया है, यह एक वस्तु उन्मुख प्राधिकरण है। और इसे अन्य फ्रेमवर्क जैसे: पासपोर्ट और एक्सप्रेस के साथ संगत के रूप में भी इस्तेमाल किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.