2015-10-05 20 views
8

पासपोर्ट सरल प्रमाणीकरण, अविभाज्य और सेटअप करने में कठोर विकल्प के लिए एक अच्छा विकल्प नहीं लगता है। मैं एक MEAN स्टैक बना रहा हूं जो जेडब्ल्यूटी का उपयोग करके प्रमाणित करता है, इसलिए मैंने पासपोर्ट जेडब्ल्यूटी को देखा। हालांकि कुछ चीजें हैं जिनके बारे में मैं उलझन में हूं।पासपोर्ट जेडब्ल्यूटी और प्राधिकृत बनाम प्रमाणीकरण

1) क्या मैं यह मानने में सही हूं कि पासपोर्ट जेडब्ल्यूटी का उपयोग केवल प्रमाणित प्रमाणीकरण के लिए किया जाता है, वैध वैध जेडटी उत्पन्न करने के लिए नहीं? यही है, क्या इसका उपयोग केवल टोकन की उपस्थिति को सत्यापित करने के लिए किया जाना चाहिए?

2) passport.authorize और passport.authenticate के बीच क्या अंतर है? और मुझे दूसरे पर एक का उपयोग कब करना चाहिए?

3) मेरे पास 3 मार्ग हैं जो मैं प्रमाणीकरण से संबंधित मामलों, login, signup, और authenticate के लिए उपयोग कर रहा हूं।

login यह जांच करेगा कि क्या उपयोगकर्ता ईमेल/पासवर्ड कॉम्बो मौजूद है और मेल खाता है और फिर क्लाइंट के लिए टोकन उत्पन्न करता है। signup यह सुनिश्चित करने के लिए जांच करेगा कि ईमेल पहले से मौजूद नहीं है और फिर क्लाइंट के लिए टोकन जेनरेट करता है। अब authenticate के लिए यह वह जगह है जहां मुझे थोड़ा मिश्रित मिलता है। अगर मुझे पहले से ही login और signup है तो मुझे authenticate रूट की भी आवश्यकता होगी? यदि कुछ भी हो, तो ऐसा लगता है कि मैं passport.use में जेडब्ल्यूटी रणनीति के लिए और signup में verify_token रूट के संभावित जोड़ के साथ ही एकमात्र असुरक्षित मार्ग होगा, जहां बाकी सब कुछ passport.authenticate पर कॉल होगा, passport.authorize

उत्तर

4
  1. सही। पासपोर्ट जेडब्ल्यूटी (पासपोर्ट-जेडटी) केवल प्रमाणीकरण अनुरोधों के लिए है। वास्तव में टोकन उत्पन्न करने के लिए आपको एक और टूल की आवश्यकता होगी। This tutorial जेडब्ल्यूटी सरल (jwt-simple) का उपयोग करता है और मैंने jsonwebtoken (प्रति this reference) का उपयोग किया है।
  2. मैंने passport.authorize पर कोई संदर्भ नहीं देखा है, इसलिए मुझे लगता है कि passport.authenticate वह है जिसे आप ढूंढ रहे हैं। passport.authenticate वह है जो आप अपने मार्गों में उपयोग करेंगे ताकि यह सत्यापित किया जा सके कि आने वाले अनुरोध में जेडब्ल्यूटी टोकन है और इसकी अनुमति है।
  3. चूंकि आप login और signup, authenticate दोनों के माध्यम से टोकन उत्पन्न कर रहे हैं, अनावश्यक और अनावश्यक है। अनुरोधों के दौरान पहुंच को सत्यापित करने के लिए बस सुनिश्चित करें कि आप अपने मार्गों में passport.authenticate का उपयोग करें।मन में रखने के लिए यहां

सामान्य सेटअप कदम हैं:

  • पासपोर्ट जेडब्ल्यूटी प्रमाणीकरण के लिए है
  • आप एक जेडब्ल्यूटी टोकन
  • जेडब्ल्यूटी टोकन, बनाने के लिए एक और उपकरण की जरूरत है कि कौन सा जो भी अनुरोध किया गया है उसे उत्पन्न करें और वापस लौटें, अगले अनुरोधों पर हेडर ("Authorization: JWT eyJ0eXAiO...") में उपस्थित होने की आवश्यकता है
  • you need to setup your JWT strategy and tell passport to use it
  • passport.authenticate का उपयोग आने वाले अनुरोधों के लिए शीर्ष लेख में जेडब्ल्यूटी टोकन के माध्यम से पहुंच सत्यापित करने के लिए, जैसे:

router.post('/users', passport.authenticate('jwt', {session: false}), function(req, res) { 
 
    // do something... 
 
});

+0

कृपया अगर http://stackoverflow.com/questions/44044394/ आप कर सकते हैं मदद कैसे-टू-सेट-jwtfromrequest-i-am-not-use-authorization-here @ user3006381 – Aditya

संबंधित मुद्दे