Everyauth और Passport.js में बहुत समान फीचर सेट हैं। दोनों के बीच कुछ सकारात्मक और नकारात्मक तुलनाएं हैं जो मुझे एक दूसरे पर उपयोग करना चाहते हैं?
Everyauth और Passport.js में बहुत समान फीचर सेट हैं। दोनों के बीच कुछ सकारात्मक और नकारात्मक तुलनाएं हैं जो मुझे एक दूसरे पर उपयोग करना चाहते हैं?
जवाबों:
पासपोर्ट के डेवलपर के रूप में, मेरे दो सेंट के साथ चुइंग ।
पासपोर्ट विकसित करने से पहले, मैंने हर आधार का मूल्यांकन किया और निर्धारित किया कि यह मेरी आवश्यकताओं को पूरा नहीं करता है। इसलिए, मैं एक अलग समाधान लागू करने के बारे में निर्धारित करता हूं जो होगा। मैं जिन प्रमुख बिंदुओं को संबोधित करना चाहता था वे हैं:
मुहावरेदार Node.js
कॉलबैक और क्लोजर का उपयोग करने के नोड के दृष्टिकोण के बजाय, हरहाथ वादों का व्यापक उपयोग करता है। वादे async प्रोग्रामिंग के लिए एक वैकल्पिक दृष्टिकोण है। कुछ उच्च-स्तरीय स्थितियों में उपयोगी होते हुए, मैं अपने आवेदन पर इस विकल्प को मजबूर करने के लिए एक प्रमाणीकरण पुस्तकालय के साथ सहज नहीं था।
इसके अलावा, मुझे लगता है कि कॉलबैक और क्लोजर पैदावार का उचित उपयोग, अच्छी तरह से आर्किटेक्चर (लगभग कार्यात्मक शैली) कोड है। नोड की अधिकांश शक्ति स्वयं इस तथ्य से आती है, और पासपोर्ट सूट का अनुसरण करता है।
मॉड्यूलर
पासपोर्ट कोर मॉड्यूल और विभिन्न प्रमाणीकरण तंत्रों के बीच चिंताओं के स्पष्ट पृथक्करण को परिभाषित करने के लिए एक रणनीति डिजाइन पैटर्न नियुक्त करता है। इसके कई लाभ हैं, जिनमें छोटे समग्र कोड आकार और अच्छी तरह से परिभाषित और परीक्षण योग्य इंटरफेस शामिल हैं।
एक बुनियादी चित्रण के लिए, दौड़ने $ npm install passport
और के बीच के अंतर की तुलना करें $ npm install everyauth
। पासपोर्ट आपको केवल उन्हीं निर्भरताओं का उपयोग करके अपने एप्लिकेशन को तैयार करने देता है, जिनकी आपको वास्तव में आवश्यकता होती है।
इस मॉड्यूलर वास्तुकला ने खुद को अनुकूल बनाने में मदद की है, एक ऐसे समुदाय को सुविधा प्रदान की है जिसने कई प्रकार के प्रमाणीकरण तंत्रों के लिए समर्थन लागू किया है, जिसमें ओपनआईडी, ओथ, ब्राउज़रआईडी, एसएएमएल, आदि शामिल हैं।
लचीला
कनेक्ट और एक्सप्रेस द्वारा स्थापित सम्मेलन का उपयोग करते हुए, पासपोर्ट सिर्फ मिडलवेयर हैfn(req, res, next)
।
इसका मतलब यह है कि कोई आश्चर्य की बात नहीं है , जैसा कि आप परिभाषित करते हैं कि आप अपने मार्गों को कहां चाहते हैं और जब आप प्रमाणीकरण का उपयोग करना चाहते हैं। एक विशिष्ट ढांचे पर भी निर्भरता नहीं हैं। लोग सफलतापूर्वक जैसे अन्य चौखटे के साथ पासपोर्ट का उपयोग कर रहे Flatiron
इसके विपरीत, everyauth में कोई भी मॉड्यूल आपके एप्लिकेशन में रूट सम्मिलित कर सकता है। यह डिबगिंग को मुश्किल बना सकता है, क्योंकि यह गैर-स्पष्ट है कि किसी मार्ग को कैसे भेजा जाएगा और एक विशिष्ट ढांचे के साथ तंग युग्मन की ओर जाता है।
एक्सप्रेस द्वारा परिभाषित के रूप में पासपोर्ट भी एक तरह से त्रुटियां है, जो पूरी तरह से पारंपरिक है, त्रुटि से निपटने वाले मिडलवेयर के बगल में है ।
इसके विपरीत, everyauth के अपने स्वयं के सम्मेलन हैं, जो समस्या स्थान को अच्छी तरह से फिट नहीं करते हैं, जिससे # 36 जैसे लंबे समय से खुले मुद्दे हैं
एपीआई प्रमाणीकरण
किसी भी प्रमाणीकरण पुस्तकालय की बड़ी उपलब्धि एपीआई प्रमाणीकरण को वेब आधारित संकेत के रूप में सुरुचिपूर्ण ढंग से संभालने की क्षमता है।
मैं इस बिंदु पर ज्यादा विस्तार नहीं करूंगा। हालाँकि, मैं लोगों को पासपोर्ट के भाई-बहनों, OAuthorize और OAuth2orize को देखने के लिए प्रोत्साहित करता हूँ । इन परियोजनाओं का उपयोग करके, आप HTML / सत्र-आधारित वेब ऐप और एपीआई क्लाइंट दोनों के लिए "पूर्ण-स्टैक" प्रमाणीकरण को लागू कर सकते हैं।
विश्वसनीय
अंत में, प्रमाणीकरण एक आवेदन का एक महत्वपूर्ण घटक है, और आप जिस पर पूरी तरह से निर्भर रहना चाहते हैं। everyauth के पास उन मुद्दों की एक लंबी सूची है जिनमें से कई खुले हैं और समय के साथ पुनरुत्थान करते हैं। मेरी राय में, यह कम इकाई परीक्षण कवरेज के कारण है, जो खुद ही बताता है कि हर ऑर्थ में आंतरिक इंटरफेस उपयुक्त रूप से परिभाषित नहीं हैं।
इसके विपरीत, पासपोर्ट के इंटरफेस और इसकी रणनीतियों को अच्छी तरह से परिभाषित किया गया है और यूनिट परीक्षणों द्वारा बड़े पैमाने पर कवर किया गया है। प्रमाणीकरण से संबंधित बग के बजाय पासपोर्ट के खिलाफ दायर मुद्दे ज्यादातर मामूली फीचर अनुरोध होते हैं।
एक छोटी परियोजना होने के बावजूद, गुणवत्ता का यह स्तर अधिक परिपक्व समाधान का सुझाव देता है जो आगे बनाए रखने और विश्वास करने में आसान है।
बस हर ऑहाथ से पासपोर्ट में बदलना समाप्त हो गया। कारण निम्नलिखित थे।
बंदरगाह आश्चर्यजनक रूप से पीड़ारहित था, केवल कुछ ही घंटे लगते थे, जिसमें मैनुअल परीक्षण भी शामिल था।
तो जाहिर है, मैं पासपोर्ट के लिए जाने की सलाह देता हूं।
मैंने पहले एराउथ को आज़माया और तब से पासपोर्ट के लिए गया। इसने मुझे कुछ हद तक अधिक लचीला, एस्प के रूप में मारा। अगर (उदाहरण के लिए) मुझे अलग-अलग प्रदाताओं के लिए अलग-अलग तर्क चाहिए। कस्टम कस्टम रणनीतियों को कॉन्फ़िगर करने के लिए यह आसान (imo) भी बनाता है। दूसरी ओर, यह देखने वालों के पास नहीं है, यदि वे आपके लिए महत्वपूर्ण हैं।
मैं Everyauth का उपयोग अधिक विशेष रूप से मैंगोज़-ऑर्ट के लिए करता था। मैंने पाया कि हर फाइल को सही तरीके से विभाजित करना मुश्किल है। मेरी राय में पासपोर्ट लॉगिन बनाने के लिए एक क्लीनर विधि है। वहाँ लिखा है कि मैं बहुत उपयोगी पाया http://rckbt.me/2012/03/transitioning-from-mongoose-auth-to-passport/
यह थोड़ा देर से जवाब देता है, लेकिन मुझे यह धागा मिला और (Everyauth के बारे में सभी नकारात्मक प्रतिक्रिया सुनने के बाद) पासपोर्ट का उपयोग करने का फैसला किया ... और फिर उससे नफरत की। यह अपारदर्शी था, केवल मिडलवेयर के रूप में काम करता था (आप उदाहरण के लिए, ग्राफक्यूएल एंडपॉइंट से प्रमाणित नहीं कर सकते थे), और मैंने बग को डीबग करने के लिए एक से अधिक हिट किया (जैसे कि मेरे पास दो एक्सप्रेस सत्र कैसे हैं? )।
तो मैं देख रहा था और https://github.com/jed/authom पाया । मेरी जरूरतों के लिए यह एक बेहतर पुस्तकालय है! यह अन्य दो पुस्तकालयों की तुलना में थोड़ा निचला स्तर है, इसलिए आपको उपयोगकर्ता को सत्र में खुद को डालने जैसी चीजें करनी होंगी ... लेकिन यह केवल एक पंक्ति है, इसलिए यह वास्तव में कोई बड़ी बात नहीं है।
इससे भी महत्वपूर्ण बात यह है कि इसका डिज़ाइन आपको बहुत अधिक नियंत्रण देता है, जिससे आपके प्राधिकरण को लागू करने में आसानी होती है, जिस तरह से आप चाहते हैं और जिस तरह से पासपोर्ट का इरादा नहीं है। साथ ही, पासपोर्ट की तुलना में यह बहुत सरल और सीखने में आसान है।
इस पोस्ट की तारीख पर ध्यान दें, यह इंगित करेगा कि यह पोस्ट कितनी प्रासंगिक है।
मेरे अनुभव में, Everyauth ने पासवर्ड लॉगिन शैली के साथ बॉक्स से बाहर काम नहीं किया। मैं एक्सप्रेस 3 का उपयोग कर रहा हूं और मैं अपने मिडलवेयर को इस तरह घोषित करता हूं app.use(everyauth.middleware(app));
और यह अभी भी मेरे टेम्पलेट के लिए हरहाथ स्थानीय में पारित नहीं हो रहा था। एक साल पहले आखिरी जीट कमिटमेंट था और मुझे लगता है कि नए पैकेजों ने हर तोड़ दिया है। अब मैं पासपोर्ट की कोशिश करने जा रहा हूं।