JSON Web Token (JWT) एक ओपन वेब स्टैंडर्ड है. इसका इस्तेमाल, क्लाइंट और सर्वर के बीच जानकारी के लेन-देन की पुष्टि करने और अनुमति देने के लिए किया जाता है. जब ऐप्लिकेशन का कोई उपयोगकर्ता, सही भूमिका के क्रेडेंशियल के साथ पहली बार साइन इन करता है, तो सर्वर एक एन्कोड किया गया और डिजिटल तौर पर साइन किया गया JWT बनाता है और उसे दिखाता है. इसका इस्तेमाल, बाद के अनुरोधों के लिए किया जाता है. इस प्रोसेस से, उपयोगकर्ता की पुष्टि की जाती है. साथ ही, उसे खाते में मिली भूमिका के आधार पर रूट, सेवाओं, और संसाधनों को ऐक्सेस करने की अनुमति दी जाती है.
Fleet Engine को स्मार्टफ़ोन और ब्राउज़र जैसे कम भरोसेमंद प्लैटफ़ॉर्म से एपीआई के तरीके को कॉल करने के लिए, JSON वेब टोकन (JWT) का इस्तेमाल करना ज़रूरी है.
JWT आपके सर्वर पर जनरेट होता है. इस पर हस्ताक्षर किए जाते हैं, इसे एन्क्रिप्ट (सुरक्षित) किया जाता है, और क्लाइंट को भेजा जाता है. इसके बाद, सर्वर के साथ होने वाले इंटरैक्शन के लिए इसका इस्तेमाल किया जाता है. ऐसा तब तक किया जाता है, जब तक इसकी समयसीमा खत्म नहीं हो जाती या यह अमान्य नहीं हो जाता.
मुख्य जानकारी
- Fleet Engine के लिए पुष्टि करने और अनुमति देने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें.
- JWT पर हस्ताक्षर करने के लिए, सही सेवा खाते का इस्तेमाल करें. Fleet Engine की बुनियादी जानकारी में, Fleet Engine के सेवा खाते की भूमिकाएं देखें.
एपीआई पासकोड के उलट, JWTs कुछ समय के लिए ही मान्य होते हैं. साथ ही, ये सिर्फ़ उन कार्रवाइयों को सीमित करते हैं जिन्हें करने की अनुमति भूमिका को मिली है. JWT के बारे में ज़्यादा जानने के लिए, Wikipedia पर JSON वेब टोकन देखें. ऐक्सेस की भूमिकाओं के बारे में ज़्यादा जानने के लिए, इस गाइड में सेवा खाते की भूमिकाएं देखें.
JWT के एलिमेंट
JWT में एक हेडर और एक क्लेम सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी कुंजी और एन्क्रिप्शन के एल्गोरिदम जैसी जानकारी होती है. दावे वाले सेक्शन में, JWT के बनने का समय, JWT के मान्य रहने की अवधि, JWT के ज़रिए ऐक्सेस की जाने वाली सेवाएं, और ऐक्सेस के दायरे से जुड़ी अनुमति की अन्य जानकारी शामिल होती है. उदाहरण के लिए, डिलीवरी वाहन का आईडी.
यहां दी गई टेबल में, JWT फ़ील्ड के बारे में सामान्य जानकारी दी गई है. साथ ही, इसमें यह भी बताया गया है कि आपको अपने Fleet Engine क्लाउड प्रोजेक्ट में, इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.
फ़ील्ड |
ब्यौरा |
|---|---|
alg |
इस्तेमाल किया जाने वाला एल्गोरिदम. `RS256`. |
typ |
टोकन किस तरह का है. `JWT`. |
बच्चा |
आपके सेवा खाते का निजी पासकोड आईडी. यह वैल्यू, सेवा खाते की JSON फ़ाइल के |
फ़ील्ड |
ब्यौरा |
|---|---|
iss |
आपके सेवा खाते का ईमेल पता, जो आपके सेवा खाते की JSON फ़ाइल के |
बदले में खेलने वाला खिलाड़ी |
आपके सेवा खाते का ईमेल पता, जो आपके सेवा खाते की JSON फ़ाइल के |
aud |
आपके सेवा खाते का |
iat |
JWT बनाए जाने का टाइमस्टैंप. इसे 00:00:00 |
exp |
JWT की समयसीमा खत्म होने का टाइमस्टैंप. इसे |
ऑथराइज़ेशन |
इस्तेमाल के उदाहरण के आधार पर, इसमें अगर taskids की जानकारी दी जा रही है, तो अनुमति का दायरा इनमें से किसी एक फ़ॉर्मैट में होना चाहिए: "taskids": ["task_id_one","task_id_two"]
या "taskids": ["*"] |
Fleet Engine JWT के दावे
Fleet Engine, निजी दावों का इस्तेमाल करता है. निजी दावों का इस्तेमाल करने से यह पक्का होता है कि सिर्फ़ अनुमति वाले क्लाइंट ही अपना डेटा ऐक्सेस कर सकें.
उदाहरण के लिए, जब आपका सर्वर किसी ड्राइवर के फ़ोन या टैबलेट के लिए JSON वेब टोकन जारी करता है, तो उसमें vehicleid क्लेम या deliveryvehicleid क्लेम होना चाहिए. साथ ही, उस ड्राइवर के वाहन का आईडी भी होना चाहिए. इसके बाद, ड्राइवर की भूमिका के आधार पर, JWT सिर्फ़ उस वाहन के आईडी के लिए ऐक्सेस देते हैं जिसके लिए उन्हें जनरेट किया गया है. वे किसी अन्य वाहन के आईडी के लिए ऐक्सेस नहीं देते.
Fleet Engine, इन निजी दावों का इस्तेमाल करता है:
मांग पर यात्राएं
-
vehicleid:- ड्राइवर एसडीके हमेशा इस दावे का इस्तेमाल करता है, चाहे वह यात्रा या वाहन पर काम कर रहा हो. Fleet Engine बैकएंड, बदलाव करने से पहले यह पक्का करता है कि वाहन, अनुरोध की गई यात्रा से जुड़ा हो.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे JWT पर हस्ताक्षर करने की प्रोसेस को लागू करना आसान हो सकता है.
-
tripid:- Consumer SDK हमेशा इस दावे का इस्तेमाल करता है.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे टोकन पर हस्ताक्षर करने की प्रोसेस को लागू करना आसान हो सकता है.
शेड्यूल किए गए टास्क
-
deliveryvehicleidहर डिलीवरी वाहन के लिए एपीआई को कॉल करते समय इसका इस्तेमाल करें.
-
taskidहर टास्क के लिए एपीआई को कॉल करते समय इसका इस्तेमाल करें.
-
taskidsBatchCreateTasksAPIको कॉल करते समय इस्तेमाल करें. यह दावा, कलेक्शन के फ़ॉर्मैट में होना चाहिए. साथ ही, कलेक्शन में वे सभी टास्क आईडी शामिल होने चाहिए जो अनुरोध को पूरा करने के लिए ज़रूरी हैं.delivervehicleid,trackingidयाtaskidदावे शामिल न करें. -
trackingidGetTaskTrackingInfoAPIको कॉल करते समय इस्तेमाल करें. दावा, अनुरोध में दिए गए ट्रैकिंग आईडी से मेल खाना चाहिए.delivervehicleid,taskidयाtaskidsदावे शामिल न करें.
आगे क्या करना है
- पुष्टि करने की पूरी प्रोसेस को समझने के लिए, Fleet Engine के सुरक्षा डिज़ाइन के बारे में पढ़ें.
- अपने सर्वर से JSON वेब टोकन जारी करने का तरीका जानें.