2015-10-11 4 views
5

मैं जेडब्ल्यूटी और फ्लास्क-जेडटी का उपयोग कर नया हूं इसलिए मैं example चलाता हूं जहां मुझे दस्तावेज़ों में मिलता है। मैंने जेडब्ल्यूटी की बेहतर समझ प्राप्त करने के लिए this पढ़ा।फ्लास्क-जेडटी कैसे टोकन को संभालते हैं?

लेकिन अब मुझे आश्चर्य है कि मुझे एक से अधिक टोकन कैसे संभालना चाहिए? मेरा मतलब है, कोई उपयोगकर्ता अपने क्रेडेंशियल्स को "myserver/auth" पर पोस्ट करता है और फिर क्लाइंट को टोकन देता है। जब ग्राहक एक नया अनुरोध भेजता है तो उसे टोकन भेजना चाहिए।

मेरा सवाल यह है कि मैं कैसे जानता हूं कि "टोकन" किस उपयोगकर्ता से संबंधित है और कहां "टोकन" संग्रहीत किया जाता है? (।):

  • हैडर
  • पेलोड
  • हस्ताक्षर

इसलिए, एक जेडब्ल्यूटी आम तौर पर निम्नलिखित की तरह लग रहा

+0

मुझे अंत में पता चला है कि यह एक मूर्ख सवाल है। मैं जल्द ही इसका जवाब दूंगा। – Ricardo

+0

मैं इस सप्ताह के अंत में एक जवाब लिखूंगा। – Ricardo

उत्तर

2

JWTs हैं जो बिंदु के द्वारा अलग तीन भागों में, से मिलकर बनता है।

xxxxx.yyyyy.zzzzz 

चलो RFC करने और this

हैडर अनुसार संक्षिप्त सारांश देख

हैडर आम तौर पर दो हिस्से होते हैं: टोकन, जो जेडब्ल्यूटी है के प्रकार, और इस तरह के रूप हैशिंग एल्गोरिथ्म एचएमएसी SHA256 या आरएसए।

{ 
    "alg": "HS256", 
    "typ": "JWT" 
} 

पेलोड

टोकन के दूसरे भाग पेलोड है, जो दावे करने वाले है। दावा एक इकाई (आमतौर पर, उपयोगकर्ता) और अतिरिक्त मेटाडेटा के बारे में बयान हैं। यह दिलचस्प हिस्सा है क्योंकि टोकन के अंदर हम जांच सकते हैं कि आपका कौन सा संबंधित है। { "उपयोगकर्ता id": "1234567890", "expiration_date": "2016-05-129" }

जब हम कोई नया टोकन बनाएं हम तो हम पहचान करने के लिए उपयोगकर्ता आईडी जोड़ सकते हैं डेटा पेलोड शामिल होगा निर्दिष्ट कर सकते हैं एक उपयोगकर्ता और expiration_date यह जांचने के लिए कि क्या एक नया पूछने का समय है।

हस्ताक्षर

हस्ताक्षर हिस्सा आप इनकोडिंग हैडर, इनकोडिंग पेलोड, एक गुप्त, एल्गोरिथ्म शीर्षलेख में निर्दिष्ट लेते हैं, और है कि साइन इन करना होगा बनाने के लिए। हस्ताक्षर का उपयोग यह सत्यापित करने के लिए किया जाता है कि जेडब्ल्यूटी के प्रेषक यह कहता है कि यह है और यह सुनिश्चित करने के लिए कि संदेश रास्ते में नहीं बदला गया था।

सर्वर साइड

हम सर्वर साइड में हमारे गुप्त कुंजी रखना चाहिए, इसलिए हमें वैध पेलोड को डिक्रिप्ट और जाँच जो उपयोगकर्ता शामिल है सकते हैं। इस तरह हम स्टोर टोकन से बचने के लिए स्वतंत्र हैं, क्योंकि प्रत्येक टोकन अपने उपयोगकर्ताओं को प्रमाणित करने के लिए पर्याप्त डेटा स्टोर करता है।

कैसे ग्राहक के पक्ष

प्रक्रिया से टोकन ?: नवीनीकृत एक नए सिरे से टोकन उत्पन्न करने के लिए एक ही है, इसलिए ग्राहक के पक्ष एक नवीनीकृत सेवा (www.myhost तरह HTTP अनुरोध के लिए पूछना चाहिए।कॉम/नवीनीकरण) और नया उत्पन्न करने के लिए पुराने टोकन भेजें। याद रखें कि आप यह जांच सकते हैं कि कौन सा उपयोगकर्ता उस टोकन से संबंधित है, इसलिए नवीनीकरण टोकन में एक ही पेलोड होना चाहिए लेकिन अलग समाप्ति तिथि के साथ।

एकल साइन-ऑन

हम single sign-on की तरह अधिक रणनीतियों के साथ जेडब्ल्यूटी उपयोग कर सकते हैं एक ही क्रेडेंशियल्स एक ही समय में लॉग होता है के साथ केवल एक उपयोगकर्ता सुनिश्चित करने के लिए।

+3

आपने सचमुच सिर्फ 'https: // jwt.io/परिचय /' से शब्दशः प्रतिलिपि बनाई है और वापस लिंक करके मूल लेखक (क्रेडिट) क्रेडिट नहीं दिया है। बौद्धिक संपदा चोरी के लिए बीओओ। BOOOOOOO। –

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