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