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 की तरह अधिक रणनीतियों के साथ जेडब्ल्यूटी उपयोग कर सकते हैं एक ही क्रेडेंशियल्स एक ही समय में लॉग होता है के साथ केवल एक उपयोगकर्ता सुनिश्चित करने के लिए।
मुझे अंत में पता चला है कि यह एक मूर्ख सवाल है। मैं जल्द ही इसका जवाब दूंगा। – Ricardo
मैं इस सप्ताह के अंत में एक जवाब लिखूंगा। – Ricardo