पोस्टमैन के साथ हेडर में जेडब्ल्यूटी टोकन भेजना


169

मैं निम्नलिखित लेख के आधार पर JWT टोकन आधारित सुरक्षा के कार्यान्वयन का परीक्षण कर रहा हूं । मुझे परीक्षण सर्वर से एक टोकन सफलतापूर्वक मिला है। मैं यह पता नहीं लगा पा रहा हूं कि हेडर में Chrome POSTMAN REST क्लाइंट प्रोग्राम को टोकन कैसे भेजा जाए।

पोस्टमैन स्क्रीनशॉट

मेरे प्रश्न इस प्रकार हैं:

1) क्या मैं सही हेडर नाम और / या POSTMAN इंटरफ़ेस का उपयोग कर रहा हूँ?

2) क्या मुझे 64 एनकोड करने की आवश्यकता है टोकन? मुझे लगा कि मैं सिर्फ टोकन वापस भेज सकता हूं।


नमस्ते, मैं POSTMAN में मुझे प्राप्त jwt टोकन कहाँ देख सकता हूँ?
उस्स

1
@MLondei, यह उस तरीके पर निर्भर करता है जिस तरह से सर्वर को कॉन्फ़िगर किया गया है। यह एक URL के रूप में वापस आ सकता है (इसे URL स्ट्रिंग में पा सकते हैं) या यह प्रतिक्रिया निकाय में वापस आ सकता है (प्रतिक्रिया के निकाय क्षेत्र में इसे ढूंढें)। उन दो प्रमुख हैं जिनके बारे में मुझे पता है।
डायोड डान

जवाबों:


277

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

प्राधिकरण: वाहक TOKEN_STRING

JWT का प्रत्येक भाग एक बेस 64url एन्कोडेड मान है।


61
स्पष्टीकरण के रूप में, "हेडर" फ़ील्ड प्राधिकरण बन जाता है और "मान" फ़ील्ड बियरर बन जाता है [WHITESPACE] <आपका कोड-यहाँ>
डायोड डैन

क्या आप जानते हैं कि क्षेत्र के किस हिस्से को एन्क्रिप्ट किया गया है? ऐसा प्रतीत होता है कि डेटा अंतिम 'के बाद सही है।' विभाजक मुझे दे रहा है जो कचरा पात्रों की तरह दिखता है। मुझे लगता है कि यह वास्तव में टोकन जनरेटर द्वारा एन्क्रिप्ट की गई जानकारी है?
डायोड डैन

5
की जाँच करें jwt.io वहाँ एक वर्ग है जहाँ आप एक जेडब्ल्यूटी पेस्ट और उसके डीकोड सामग्री, हो रहा क्या देखने का सबसे अच्छा तरीका है अपने देख सकते हैं। टोकन के अंतिम खंड को बनाने के लिए सर्वर सीक्रेट स्ट्रिंग का उपयोग किया जाता है। JWT केवल पेलोड को एन्क्रिप्ट नहीं करता है अर्थात आप स्ट्रिंग के भाग 1 और 2 को डिकोड कर सकते हैं लेकिन इसे गुप्त के बिना मान्य नहीं कर सकते। self-issued.info/docs/draft-ietf-oauth-json-web-token.html
मिक कलन

4
क्या कोई इस बारे में विस्तार से बता सकता है कि हमें जेडब्ल्यूटी से पहले बियरर लगाने की आवश्यकता क्यों है? क्या यह सर्वर के लिए किसी तरह का सिग्नल है कि यह JWT है?
user137717

3
यह सिर्फ सम्मेलन है - आप यहां सभी विवरण पा सकते हैं: jwt.io/introduction
माइकल नोयब

134

यहाँ एक छवि है अगर यह मदद करता है :)

डाकिया

अपडेट करें:

पोस्टमैन टीम ने "प्राधिकरण टैब" में "बियरर टोकन" जोड़ा: अद्यतन पोस्टमैन


40

मैं इस सवाल को थोड़ा दिलचस्प टिप से जोड़ रहा हूं जो आपको JWT Apis का परीक्षण करने में मदद कर सकता है।

यह वास्तव में बहुत सरल है।

जब आप अपने Api (लॉगिन समापन बिंदु) में लॉग इन करते हैं, तो आप तुरंत अपना टोकन प्राप्त करेंगे, और जैसा कि @ mick-cullen ने कहा है कि आपको अपने हेडर पर JWT का उपयोग करना होगा:

Authorization: Bearer TOKEN_STRING

अब यदि आप अपने जीवन को आसान बनाना या बस करना पसंद करते हैं, तो आपके परीक्षण आपको एक वैश्विक के रूप में टोकन को बचा सकते हैं जिसे आप अन्य सभी बिंदुओं पर कॉल कर सकते हैं:

Authorization: Bearer {{jwt_token}}

पोस्टमैन पर: फिर पोस्टमैन में jwt_token = TOKEN_STRING के रूप में एक वैश्विक चर बनाएं।

अपने लॉगिन समापन बिंदु पर: इसे उपयोगी बनाने के लिए, टेस्ट की शुरुआत में जोड़ें टैब जोड़ें:

var data = JSON.parse(responseBody);
postman.clearGlobalVariable("jwt_token");
postman.setGlobalVariable("jwt_token", data.jwt_token);

मैं अनुमान लगा रहा हूं कि आपकी एपीआई प्रतिक्रिया के रूप में एक टोकन के रूप में लौटा रही है: {"jwt_token": "TOKEN_STRING"}, इसमें कुछ भिन्नता हो सकती है।

पहली पंक्ति में आप डेटा वैरिएबल पर प्रतिक्रिया जोड़ते हैं। अपने ग्लोबल को साफ करें और मूल्य निर्दिष्ट करें।

तो अब आपके पास वैश्विक चर पर अपना टोकन है, जो आपके सभी समापन बिंदुओं पर प्राधिकरण: बियरर {{jwt_token}} का उपयोग करना आसान बनाता है।

आशा है कि यह टिप मदद करेगी।



कुछ पढ़ने के लिए संपादित करें

पोस्टमैन पर परीक्षणों के बारे में: उदाहरणों का परीक्षण करना

कमांड लाइन: न्यूमैन

CI: जेनकिंस के साथ एकीकरण

अच्छा ब्लॉग पोस्ट: मास्टर एपीआई परीक्षण स्वचालन


दिलचस्प है, मैं Testटैब और पोस्टमैन कोडिंग की अवधारणा से अपरिचित हूं । क्या कोई संसाधन है जिसे आप इसके साथ शुरू करने की सलाह देते हैं?
डायोड डैन


वास्तव में जब यह स्वचालित परीक्षण की बात आती है तो पोस्टमैन वास्तव में दिलचस्प और बहुत मजबूत होता है। आप पोस्टमैन को इस तरह से कॉन्फ़िगर कर सकते हैं कि यह यादृच्छिक डेटा ग्लोबल चर या पर्यावरण चर का निर्माण कर सकता है जिसे आप परीक्षणों पर चला सकते हैं। और पुनरावृत्त रन बनाते हैं और समापन बिंदु इकाई परीक्षणों के रूप में किसी भी प्रतिक्रिया का परीक्षण करते हैं। जब आप कोड बदलते हैं तो उन्हें सहेजें और त्रुटियां खोजें। मैंने कमांड लाइन उपयोगिता का उपयोग नहीं किया है लेकिन मैं समझता हूं कि आप इसे अपने ci- पाइपलाइन में चलाने के लिए कॉन्फ़िगर कर सकते हैं।
पाब्लो पलासियोस

आप यहाँ कमांड लाइन के बारे में पढ़ सकते हैं: getpostman.com/docs/newman_intro
पाब्लो

9

मेरे पास एक ही मुद्दा था Flaskऔर पहले 2 समाधानों की कोशिश करने के बाद जो समान हैं ( Authorization: Bearer <token>), और इसे प्राप्त कर रहे हैं:

{
    "description": "Unsupported authorization type",
    "error": "Invalid JWT header",
    "status_code": 401
}

मैं अंत में इसका उपयोग करके हल करने में कामयाब रहा:

Authorization: jwt <token>

सोचा कि यह कुछ समय के लिए एक ही बात का सामना करने वाले लोगों को बचा सकता है।


1
मैं उपयोग Authentication credentials were not providedमें मिल रहा था । के साथ हल किया । समाधान के लिए धन्यवादdjangoBearer <token>jwt <token>
S_M

7

यहां बताया गया है कि इस टोकन को स्वचालित रूप से कैसे सेट किया जाए

आपके लॉगिन / ऑस्ट्रियाई अनुरोध पर

यहां छवि विवरण दर्ज करें

फिर प्रमाणीकृत पृष्ठ के लिए

यहां छवि विवरण दर्ज करें


4

यदि आप पोस्टमैन का उपयोग करना चाहते हैं तो सही तरीका है हेडर का उपयोग करना

कुंजी: प्राधिकरण

मान: jwt {टोकन}

इतना सरल है।


2

जो लोग JWT ऑथेंटिकेशन खोलने के लिए WordPress plugin Advanced Access Manager का उपयोग कर रहे हैं ।

हेडर फ़ील्ड को प्राधिकरण के बजाय प्रमाणीकरण को रखा जाना चाहिए

यहां छवि विवरण दर्ज करें

एएएम ने अपने दस्तावेज के अंदर इसका उल्लेख किया ,

ध्यान दें! AAM मानक प्राधिकरण शीर्ष लेख का उपयोग नहीं करता है क्योंकि यह अधिकांश Apache सर्वर द्वारा छोड़ दिया जाता है। ...


आशा है कि यह किसी की मदद करता है! अन्य उत्तर के लिए धन्यवाद मुझे भी बहुत मदद मिली !!


2
  1. पोस्टमैन खोलें।
  2. "हैडर" फ़ील्ड पर जाएं।
  3. कोई भी "कुंजी मान" रिक्त स्थान देख सकता है।
  4. कुंजी प्रकार में "प्राधिकरण"।
  5. मूल्य प्रकार में "बियरर (स्पेस) your_access_token_value"।

किया हुआ!


2

यहां छवि विवरण दर्ज करें

बाकी सब यानी। परम, प्राधिकरण, निकाय, पूर्व-अनुरोध स्क्रिप्ट, परीक्षण रिक्त है, बस हेडर टैब खोलें और छवि में दिखाए अनुसार जोड़ें। GET के अनुरोध के लिए भी ऐसा ही है।


0

किसी तरह डाकिया मेरे लिए काम नहीं किया। मुझे RESTED नामक क्रोम एक्सटेंशन का उपयोग करना पड़ा, जिसने काम किया।


0

मैंने ऐसा किया कि कैसे मोप्लिन का उल्लेख किया गया था। लेकिन मेरी केस सर्विस में प्रतिक्रिया हेडर में JWT भेजते हैं, कुंजी "प्राधिकरण" के तहत एक मूल्य के रूप में।

Authorization →Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJpbWFsIiwiZXhwIjoxNDk4OTIwOTEyfQ.dYEbf4x5TGr_kTtwywKPI2S-xYhsp5RIIBdOa_wl9soqaFkUUKfy73kaMAv_c-6cxTAqBwtskOfr-Gm3QI0gpQ

मैंने जो किया था, पोस्टमैन के रूप में एक वैश्विक चर बना

कुंजी->
jwt मूल्य-> ब्लाब्लह

लॉगिन अनुरोध में - टेस्ट टैब, जोड़ें

postman.clearGlobalVariable("jwt");
postman.setGlobalVariable("jwt", postman.getResponseHeader("Authorization"));

अन्य अनुरोधों में हेडर टैब चुनें और दें

कुंजी> प्राधिकरण

मूल्य -> ​​{{जेडब्ल्यूटी}}


0

पोस्टमैन नवीनतम संस्करण (7 ++) में हो सकता है कि प्राधिकरण में कोई बियरर फ़ील्ड न हो इसलिए हेडर टैब पर जाएं

प्राधिकरण के रूप में कुंजी का चयन करें और मूल्य JWT लिखें


V7.19.0 + के लिए और यह थोड़ी देर के लिए भी है, टैब Bearer Tokenमें एक सहायक है Authorization, यहां टोकन मूल्य (हार्डकोड या एक डायनामिक चर के रूप में) जोड़ने Authorizationसे अनुरोध के लिए एक ही हेडर बन जाएगा ।
डैनी डैनटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.