JWTs और बियरर टोकन के बीच अंतर क्या है?


105

मैं मूल, डाइजेस्ट, OAuth2.0, JWTs और बियरर टोकन जैसे प्राधिकरण के बारे में कुछ सीख रहा हूं।

अब मेरे पास एक सवाल है।

आप जानते हैं कि JWTs को OAuth2.0 मानक में Access_Token के रूप में उपयोग किया जा रहा है। JWTs RFC 7519 में दिखाई देता है, और Bearer टोकन RFC 6750 पर है।

उदाहरण के लिए, वाहक:

Authorization: Bearer <token>

मैं AJAX द्वारा सर्वर को टोकन भेजता था या url के क्वेरी स्ट्रिंग में टोकन जोड़ता था। मुझे पता है कि अनुरोध शीर्षलेख में जोड़कर एक टोकन भी भेजा जा सकता है। इसका मतलब यह है कि टोकन को प्राधिकरण बियरर हेडर में जोड़ा जाना चाहिए?

क्या आप कृपया मुझे JWTs और बियरर टोकन के बीच संबंध बता सकते हैं? बहुत बहुत धन्यवाद।

जवाबों:


85

JWT टोकन के लिए एक एन्कोडिंग मानक है जिसमें JSON डेटा पेलोड होता है जिसे हस्ताक्षरित और एन्क्रिप्ट किया जा सकता है।

JWT का इस्तेमाल कई चीजों के लिए किया जा सकता है, उनमें बियरर टोकन हैं, यानी एक ऐसी जानकारी जिसे आप कुछ सेवा के लिए पेश कर सकते हैं, जिसके आधार पर आपके पास यह (आप "वाहक" होने के नाते) आपको किसी चीज तक पहुंच प्रदान करता है।

बियरर टोकन को HTTP अनुरोध में अलग-अलग तरीकों से शामिल किया जा सकता है, उनमें से एक (संभवतः पसंदीदा) प्राधिकरण हेडर है। लेकिन आप इसे एक अनुरोध पैरामीटर, एक कुकी या अनुरोध निकाय में भी डाल सकते हैं। यह ज्यादातर आपके और उस सर्वर के बीच होता है जिसे आप एक्सेस करने का प्रयास कर रहे हैं।


फिर ऑथराइजेशन हेडर में टोकन को पार्स करने के लिए, एक बियरर है, मुझे String.slice () का उपयोग करना है, क्या इसे पार्स करने के लिए कोई मिडलवेयर है?
laoqiren

मैं
बजे

auth-headerयदि आप न्यूनतम पार्सर चाहते हैं तो पैकेज का उपयोग करें
डिमर्गोस

1
या बस String.slice () का उपयोग करें :)
पॉल Siersma

138

संक्षिप्त जवाब

जेडब्ल्यूटी दावों को एनकोड और सत्यापित करने का एक सुविधाजनक तरीका है ।

एक बियर टोकन सिर्फ स्ट्रिंग है, संभावित रूप से मनमाना है, जिसका उपयोग प्राधिकरण के लिए किया जाता है।

संदर्भ (कहानी समय)

कुछ साल पहले, JWT क्रांति से पहले, <token>सिर्फ एक स्ट्रिंग थी जिसमें कोई आंतरिक अर्थ नहीं था, जैसे 2pWS6RQmdZpE0TQ93X। उस टोकन को एक डेटाबेस में देखा गया था, जिसने उस टोकन के लिए दावों को रखा था । इस दृष्टिकोण का नकारात्मक पहलू यह है कि हर बार टोकन का उपयोग करने पर डीबी एक्सेस (या कैश) की आवश्यकता होती है।

JWTs अपने स्वयं के दावों को एनकोड और सत्यापित (हस्ताक्षर करके) करते हैं । यह लोगों को अल्पकालिक JWTs जारी करने की अनुमति देता है जो स्टेटलेस हैं (पढ़ें: आत्म-निहित, किसी और पर निर्भर न रहें)। उन्हें डीबी को हिट करने की आवश्यकता नहीं है। यह DB लोड को कम करता है और एप्लिकेशन आर्किटेक्चर को सरल करता है क्योंकि केवल उस सेवा को जारी करता है जो JWTs को DB / दृढ़ता परत ( आप शायद भर में आए हैं) को मारने के बारे में चिंता करने की आवश्यकता है ।refresh_token


धन्यवाद, और मैक के बारे में प्राधिकरण में, मैक और बियरर एक ही हैं?
laoqiren

बेस्ट कहीं और उत्तर दिया, जैसे: dzone.com/articles/oauth-20-bearer-token-profile
rmharrison

-4

JWTs दो प्रकार के टोकन के साथ काम करते हैं, पैरामीटर टोकन: पैरामीटर के रूप में एक्सेस टोकन पास। बियरर टोकन: यह 'बियरर' के साथ हेडर में पास होता है।

कृपया निम्नलिखित प्रश्न भी पढ़ें:

OAuth 2 में Bearer टोकन और token_type क्या हैं?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.