JSON Web Token (JWT) एक ओपन वेब स्टैंडर्ड है. इसका इस्तेमाल, क्लाइंट और सर्वर के बीच जानकारी के आदान-प्रदान की पुष्टि करने और अनुमति देने के लिए किया जाता है. जब कोई ऐप्लिकेशन उपयोगकर्ता, सही भूमिका के क्रेडेंशियल से पहली बार साइन इन करता है, तो सर्वर एक एनकोड किया गया, डिजिटल तौर पर साइन किया गया JWT बनाता है और उसे वापस भेजता है. इसका इस्तेमाल, बाद के अनुरोधों के लिए किया जाता है. इस प्रोसेस से, उपयोगकर्ता की पुष्टि भी होती है और उसे अपने खाते की भूमिका के आधार पर, रास्तों, सेवाओं, और संसाधनों को ऐक्सेस करने की अनुमति भी मिलती है.
Fleet Engine के लिए, JSON Web Token (JWT) का इस्तेमाल करना ज़रूरी है, ताकि एपीआई के तरीके को कॉल किया जा सके कम भरोसे वाले एनवायरमेंट (स्मार्टफ़ोन और ब्राउज़र) से.
JWT आपके सर्वर पर जनरेट होता है. इस पर हस्ताक्षर किए जाते हैं, इसे एनक्रिप्ट किया जाता है, और क्लाइंट को भेजा जाता है. इसका इस्तेमाल, सर्वर के साथ होने वाले बाद के इंटरैक्शन के लिए किया जाता है. यह तब तक मान्य रहता है, जब तक इसकी समयसीमा खत्म नहीं हो जाती या यह अमान्य नहीं हो जाता.
मुख्य जानकारी
- Fleet Engine के ख़िलाफ़ पुष्टि करने और अनुमति देने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें.
- JWT पर हस्ताक्षर करने के लिए, सही सेवा खाते का इस्तेमाल करें. **Fleet Engine की बुनियादी बातें** में, Fleet Engine के सेवा खाते की भूमिकाएं देखें.
एपीआई पासकोड के उलट, JWT की समयसीमा कम होती है. साथ ही, इससे सिर्फ़ वे कार्रवाइयां की जा सकती हैं जिन्हें करने की अनुमति भूमिका के पास होती है. JWT के बारे में ज़्यादा जानने के लिए, Wikipedia पर JSON Web Token लेख देखें. ऐक्सेस की भूमिकाओं के बारे में ज़्यादा जानने के लिए, इस गाइड में सेवा खाते की भूमिकाएं देखें.
JWT के एलिमेंट
JWT में एक हेडर और दावा सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी पासकोड और एनक्रिप्ट करने के एल्गोरिदम जैसी जानकारी होती है. दावा सेक्शन में, JWT के बनने का समय, समयसीमा, वे सेवाएं जिन्हें JWT ऐक्सेस करने का दावा करता है, और ऐक्सेस को सीमित करने के लिए अनुमति से जुड़ी अन्य जानकारी होती है. उदाहरण के लिए, डिलीवरी करने वाले वाहन का आईडी.
यहां दी गई टेबल में, JWT के फ़ील्ड के बारे में सामान्य जानकारी दी गई है. साथ ही, इसमें यह भी बताया गया है कि Fleet Engine के क्लाउड प्रोजेक्ट में इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.
फ़ील्ड |
ब्यौरा |
|---|---|
alg |
इस्तेमाल किया जाने वाला एल्गोरिदम. `RS256`. |
typ |
टोकन का टाइप. `JWT`. |
kid |
आपके सेवा खाते का निजी पासकोड आईडी. यह वैल्यू, आपके सेवा खाते की JSON फ़ाइल के
|
फ़ील्ड |
ब्यौरा |
|---|---|
iss |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के
|
sub |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के
|
aud |
आपके सेवा खाते का |
iat |
वह टाइमस्टैंप जब JWT बनाया गया था. यह 00:00:00 |
exp |
वह टाइमस्टैंप जब JWT की समयसीमा खत्म हो जाती है. यह बीते हुए सेकंड में बताया जाता है
जबसे |
authorization |
इस्तेमाल के उदाहरण के आधार पर, इसमें अगर taskids तय किए जा रहे हैं, तो ऑथराइज़ेशन स्कोप, इनमें से किसी एक फ़ॉर्म में एक कलेक्शन होना चाहिए: "taskids": ["task_id_one","task_id_two"]
या "taskids": ["*"] |
Fleet Engine के JWT दावे
Fleet Engine, निजी दावों का इस्तेमाल करता है. निजी दावों का इस्तेमाल करने से यह पक्का होता है कि सिर्फ़ अनुमति वाले क्लाइंट ही अपना डेटा ऐक्सेस कर सकते हैं.
उदाहरण के लिए, जब आपका सर्वर, ड्राइवर के मोबाइल
डिवाइस के लिए JSON Web Token जारी करता है, तो उसमें 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 Web Token जारी करने का तरीका जानें.