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