JSON Web Token (JWT) एक ओपन वेब स्टैंडर्ड है. इसका इस्तेमाल, क्लाइंट और सर्वर के बीच जानकारी के आदान-प्रदान की पुष्टि करने और उसे अनुमति देने के लिए किया जाता है. जब कोई ऐप्लिकेशन उपयोगकर्ता, भूमिका के क्रेडेंशियल से पहली बार साइन इन करता है, तो सर्वर एक एन्कोड किया गया, डिजिटल तौर पर हस्ताक्षर किया गया जेडब्लयूटी बनाता है और उसे वापस भेजता है. इसका इस्तेमाल बाद के अनुरोधों के लिए किया जाता है. इस प्रोसेस से, उपयोगकर्ता की पुष्टि की जाती है. साथ ही, उन्हें उनकी खाता भूमिका के आधार पर, रास्तों, सेवाओं, और संसाधनों को ऐक्सेस करने की अनुमति दी जाती है.
Fleet Engine को JSON Web Token (JWT) इस्तेमाल करने की ज़रूरत होती है. ऐसा इसलिए, ताकि कम भरोसेमंद एनवायरमेंट (स्मार्टफ़ोन और ब्राउज़र) से एपीआई के तरीके कॉल किए जा सकें.
JWT आपके सर्वर पर बनता है. इस पर हस्ताक्षर किया जाता है, इसे एन्क्रिप्ट (सुरक्षित) किया जाता है, और क्लाइंट को भेजा जाता है. ऐसा तब तक होता है, जब तक यह JWT खत्म नहीं हो जाता या मान्य नहीं रहता.
मुख्य जानकारी
- Fleet Engine के ख़िलाफ़ पुष्टि करने और अनुमति देने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें.
- JWT पर हस्ताक्षर करने के लिए, सही सेवा खाते का इस्तेमाल करें. Fleet Engine की बुनियादी बातें में, Fleet Engine serviceaccount की भूमिकाएं देखें.
एपीआई पासकोड के उलट, JWT कम समय के लिए मान्य होते हैं. साथ ही, ये सिर्फ़ उन कार्रवाइयों को सीमित करते हैं जिन्हें भूमिका के हिसाब से अनुमति मिली होती है. JWT के बारे में ज़्यादा जानकारी के लिए, Wikipedia पर JSON Web Tokens लेख पढ़ें. ऐक्सेस की भूमिकाओं के बारे में ज़्यादा जानने के लिए, इस गाइड में सेवा खाते की भूमिकाएं देखें.
JWT एलिमेंट
JWT में एक हेडर और एक दावा सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी कुंजी और एन्क्रिप्शन एल्गोरिदम जैसी जानकारी होती है. दावे वाले सेक्शन में, JWT के बनाए जाने का समय, JWT के इस्तेमाल की अवधि, JWT के ऐक्सेस का दावा करने वाली सेवाएं, और ऐक्सेस के दायरे को तय करने के लिए अनुमति से जुड़ी अन्य जानकारी शामिल होती है. उदाहरण के लिए, डिलीवरी वाहन का आईडी.
यहां दी गई टेबल में, सामान्य तौर पर JWT फ़ील्ड के बारे में जानकारी दी गई है. साथ ही, यह भी बताया गया है कि Fleet Engine Cloud प्रोजेक्ट में इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.
फ़ील्ड |
ब्यौरा |
|---|---|
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:- Driver SDK हमेशा इस दावे का इस्तेमाल करता है. भले ही, वह किसी यात्रा या वाहन पर काम कर रहा हो. Fleet Engine का बैकएंड यह पक्का करता है कि बदलाव करने से पहले, वाहन को अनुरोध की गई यात्रा से जोड़ दिया गया हो.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे JWT पर हस्ताक्षर करने की प्रोसेस को लागू करना आसान हो सकता है.
-
tripid:- Consumer SDK हमेशा इस दावे का इस्तेमाल करता है.
- JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे टोकन पर हस्ताक्षर करने की प्रोसेस को आसान बनाया जा सकता है.
शेड्यूल किए गए टास्क
-
deliveryvehicleidइस कुकी का इस्तेमाल, हर डिलीवरी वाहन के हिसाब से एपीआई को कॉल करते समय किया जाता है.
-
taskidइसका इस्तेमाल, टास्क के हिसाब से एपीआई कॉल करते समय किया जाता है.
-
taskidsकॉल करने के लिए,
BatchCreateTasksAPIका इस्तेमाल करें. यह दावा, ऐरे के फ़ॉर्म में होना चाहिए. साथ ही, ऐरे में अनुरोध पूरा करने के लिए ज़रूरी सभी टास्क आईडी शामिल होने चाहिए.delivervehicleid,trackingidयाtaskidवाले दावे शामिल न करें. -
trackingidGetTaskTrackingInfoAPIको कॉल करते समय इसका इस्तेमाल करें. यह दावा, अनुरोध में दिए गए ट्रैकिंग आईडी से मेल खाना चाहिए.delivervehicleid,taskidयाtaskidsवाले दावे शामिल न करें.
आगे क्या करना है
- Fleet Engine के सुरक्षा डिज़ाइन के बारे में पढ़ें, ताकि आपको पुष्टि करने की पूरी प्रोसेस समझ में आ सके.
- अपने सर्वर से JSON वेब टोकन जारी करने का तरीका जानें.