सवाल एक आम है, लेकिन यह काफी समझदार नहीं है। JWT एक प्रकार का टोकन है, और OAuth एक फ्रेमवर्क है, जो बताता है कि टोकन को कैसे बांटना है।
"फ्रेमवर्क" से हमारा क्या तात्पर्य है? बस अनुरोधों और प्रतिक्रियाओं का क्रम, और उन स्वरूपों, जो टोकन का अनुरोध करने के लिए इस्तेमाल किया जा सकता है। OAuthv2 अलग-अलग परिदृश्यों के लिए अलग-अलग "प्रवाह" या अनुदान प्रकारों का वर्णन करता है, और विशेष प्रवाह की सुरक्षा बढ़ाने के लिए अलग-अलग एक्सटेंशन (जैसे PKCE) हैं।
OAuthV2 अनुदान के माध्यम से अनुरोध के लिए टोकन का परिणाम है ... एक टोकन। उस चीज़ को तब "बियरर टोकन" के रूप में नियोजित किया जाता है, जिसका अर्थ है, कोई भी पार्टी जो टोकन रखती है, एक एपीआई अनुरोध-सेवा के लिए इसे पेश कर सकती है (जैसे, "मेरे संग्रहीत मूल्य कार्ड पर शेष राशि क्या है?")। बियरर टोकन के रूप में, यह नकद पैसे की तरह काम करता है। यदि आप इसे पकड़ रहे हैं, तो आप इसका उपयोग कर सकते हैं। (हालांकि, नकद पैसे के विपरीत, एक टोकन इसका उपयोग नहीं करता है और इसे खो देता है। शायद एक बेहतर सादृश्य सार्वजनिक ट्रांज़िट सिस्टम पर एक पूरे दिन का टिकट-टू-राइड है, या डिज़नीवर्ल्ड में एक पूरे दिन का टिकट है।)
JWT एक विशेष प्रकार का टोकन है, और JWT को पूरी तरह से OAuth बियरर टोकन के रूप में इस्तेमाल किया जा सकता है। वास्तव में, यह सबसे आम अभ्यास है। उस के प्रकाश में, "JWT बनाम OAuth" सेब और सेब की गाड़ियों की तुलना है।
अक्सर लोग सोचते हैं कि "OAuth टोकन" का अर्थ हमेशा एक अपारदर्शी टोकन होता है - अल्फ़ान्यूमेरिक वर्णों का एक यादृच्छिक अनुक्रम जिसमें कोई अंतर्निहित अर्थ नहीं होता है - जो कि OAuth टोकन औषधालय द्वारा प्रदान किया जाता है, फिर इसे केवल उसी OAuth डिस्पेंसरी सिस्टम के लिए मान्य किया जा सकता है। लेकिन यह OAuth टोकन का एकमात्र प्रकार नहीं है। एक अपारदर्शी टोकन एक प्रकार का टोकन है; JWT को OAuth टोकन के एक अलग प्रकार के रूप में इस्तेमाल किया जा सकता है।
JWT, इसके विपरीत, अपारदर्शी नहीं हैं। JWT एक "पॉइंटर" या सूचना का संदर्भ नहीं है। इसमें वास्तव में बहुत सारी विशिष्ट जानकारी होती है, जिसे टोकन द्वारा किसी भी पार्टी द्वारा निकाला और व्याख्या किया जा सकता है। क्योंकि JWT में वास्तविक जानकारी होती है, एक JWT बड़ी हो सकती है; 300 बाइट्स, 500 बाइट्स, या अधिक, इसके भीतर निहित दावों और इस पर हस्ताक्षर करने के लिए उपयोग किए गए एल्गोरिदम पर निर्भर करता है। जब लोग कहते हैं कि "JWT स्व-वैध हैं" उनका क्या मतलब है, JWT का कोई भी धारक इसे खोल सकता है, इसे सत्यापित कर सकता है, और फिर इसमें प्रस्तुत दावों के आधार पर प्राधिकरण निर्णय कर सकता है। JWT को मान्य करने का अर्थ है: इसकी संरचना को सत्यापित करना, बेस 64 एन्कोडिंग को डिकोड करना, कुंजी को सत्यापित करना सही है, हस्ताक्षर की पुष्टि करना, फिर आवश्यक दावों को सत्यापित करना टोकन में मौजूद हैं, समाप्ति की जांच करना। यह एक साधारण बात नहीं है, बल्कि एक बहु-चरणीय प्रक्रिया है, लेकिन निश्चित रूप से विभिन्न प्रोग्रामिंग भाषाओं में बहुत सारे पुस्तकालय हैं जो इसके साथ हेक्लिप करते हैं, और निश्चित रूप से वेरिफाईजडब्ल्यूटी नीति है जो आपको एपिगी एज एपीआई प्रॉक्सी के भीतर ऐसा करने में मदद करती है। मुद्दा यह है कि कोई भी धारक या रिसीवर टोकन को सत्यापित कर सकता है। इस वजह से, हम कहते हैं कि JWT "फेडरेशन" का समर्थन करता है - कोई भी एक टोकन उत्पन्न कर सकता है, और कोई भी टोकन को पढ़ और मान्य कर सकता है।
कस्टम का दावा है। JWT और अपारदर्शी OAuth टोकन दोनों विषय के बारे में कस्टम दावे कर सकते हैं। सुरक्षा। दोनों सहनशील टोकन हैं। दोनों को रहस्य के रूप में संरक्षित करने की आवश्यकता है। समाप्ति। दोनों को एक समाप्ति के साथ चिह्नित किया जा सकता है। दोनों को तरोताजा किया जा सकता है। प्रमाणीकरण तंत्र या अनुभव। दोनों एक ही उपयोगकर्ता अनुभव प्रस्तुत कर सकते हैं।