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 के Cloud प्रोजेक्ट में, इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.
फ़ील्ड |
ब्यौरा |
|---|---|
alg |
इस्तेमाल किया जाने वाला एल्गोरिदम. `RS256`. |
typ |
टोकन का टाइप. `JWT`. |
kid |
आपके सेवा खाते का निजी पासकोड आईडी. यह वैल्यू, आपके सेवा खाते की JSON फ़ाइल के
|
फ़ील्ड |
ब्यौरा |
|---|---|
iss |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के
|
sub |
आपके सेवा खाते का ईमेल पता. यह आपके सेवा खाते की JSON फ़ाइल के
|
aud |
आपके सेवा खाते का |
iat |
वह टाइमस्टैंप जब JWT बनाया गया था. यह 00:00:00 |
exp |
वह टाइमस्टैंप जब JWT खत्म हो जाता है. यह बीते हुए सेकंड में बताया जाता है
जब से |
ऑथराइज़ेशन |
इस्तेमाल के मामले के आधार पर, इसमें अगर 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 जारी करने का तरीका जानें.