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