JSON वेब टोकन

JSON Web Token (JWT) एक ओपन वेब स्टैंडर्ड है. इसका इस्तेमाल, क्लाइंट और सर्वर के बीच जानकारी के आदान-प्रदान की पुष्टि करने और उसे अनुमति देने के लिए किया जाता है. जब कोई ऐप्लिकेशन उपयोगकर्ता, सही भूमिका के क्रेडेंशियल से पहली बार साइन इन करता है, तो सर्वर एक एन्कोड किया गया, डिजिटल तौर पर हस्ताक्षर किया गया जेडब्लूटी बनाता है और उसे वापस भेजता है. इसका इस्तेमाल बाद के अनुरोधों के लिए किया जाता है. इस प्रोसेस से, उपयोगकर्ता की पुष्टि की जाती है. साथ ही, उन्हें उनकी खाता भूमिका के आधार पर, रास्तों, सेवाओं, और संसाधनों को ऐक्सेस करने की अनुमति दी जाती है.

Fleet Engine को JSON Web Token (JWT) इस्तेमाल करने की ज़रूरत होती है. ऐसा इसलिए, ताकि कम भरोसेमंद एनवायरमेंट (जैसे कि स्मार्टफ़ोन और ब्राउज़र) से एपीआई के तरीके को कॉल किया जा सके.

JWT आपके सर्वर पर बनता है. इस पर हस्ताक्षर किया जाता है, इसे एन्क्रिप्ट (सुरक्षित) किया जाता है, और क्लाइंट को भेजा जाता है. ऐसा तब तक होता है, जब तक यह खत्म नहीं हो जाता या मान्य नहीं रहता.

मुख्य जानकारी

एपीआई पासकोड के उलट, JWT कम समय के लिए मान्य होते हैं. साथ ही, ये सिर्फ़ उन कार्रवाइयों को सीमित करते हैं जिन्हें भूमिका के हिसाब से करने की अनुमति है. JWT के बारे में ज़्यादा जानकारी के लिए, Wikipedia पर JSON Web Tokens लेख पढ़ें. ऐक्सेस की भूमिकाओं के बारे में ज़्यादा जानने के लिए, इस गाइड में सेवा खाते की भूमिकाएं देखें.

JWT एलिमेंट

JWT में एक हेडर और एक दावा सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी कुंजी और एन्क्रिप्शन एल्गोरिदम जैसी जानकारी होती है. दावे वाले सेक्शन में यह जानकारी होती है: JWT बनाने का समय, JWT की समयसीमा, वे सेवाएं जिन्हें JWT ऐक्सेस करने का दावा करता है, और ऐक्सेस को सीमित करने के लिए अनुमति से जुड़ी अन्य जानकारी. उदाहरण के लिए, डिलीवरी करने वाले वाहन का आईडी.

यहां दी गई टेबल में, सामान्य तौर पर JWT फ़ील्ड के बारे में जानकारी दी गई है. साथ ही, यह भी बताया गया है कि Fleet Engine Cloud प्रोजेक्ट में इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.

JWT हेडर फ़ील्ड

फ़ील्ड

ब्यौरा

alg

इस्तेमाल किया जाने वाला एल्गोरिदम. `RS256`.

टाइप

टोकन किस तरह का है. `JWT`.

बच्चे की प्रोफ़ाइल

आपके सेवा खाते की निजी कुंजी का आईडी. यह वैल्यू, आपको सेवा खाते की JSON फ़ाइल के private_key_id फ़ील्ड में मिल सकती है. पक्का करें कि आपने सेवा वाले ऐसे खाते की कुंजी का इस्तेमाल किया हो जिसके पास सही लेवल की अनुमतियां हों.

JWT के दावे वाले फ़ील्ड

फ़ील्ड

ब्यौरा

iss

आपके सेवा खाते का ईमेल पता. यह सेवा खाते की JSON फ़ाइल के client_email फ़ील्ड में मौजूद होता है.

बदले में खेलने वाला खिलाड़ी

आपके सेवा खाते का ईमेल पता. यह सेवा खाते की JSON फ़ाइल के client_email फ़ील्ड में मौजूद होता है.

aud

आपके सेवा खाते का SERVICE_NAME, इस मामले में https://fleetengine.googleapis.com/

iat

यह टाइमस्टैंप बताता है कि JWT कब बनाया गया था. यह 00:00:00 UTC, January 1, 1970 के बाद से बीते हुए सेकंड में बताया जाता है. झुकने के लिए 10 मिनट का समय दें. अगर टाइमस्टैंप बहुत पुराना है या आने वाले समय का है, तो सर्वर गड़बड़ी की सूचना दे सकता है.

exp

वह टाइमस्टैंप जब JWT की समयसीमा खत्म हो जाती है. इसे 00:00:00 UTC, January 1, 1970 के बाद से बीते हुए सेकंड में बताया जाता है. अगर टाइमस्टैंप, एक घंटे से ज़्यादा समय बाद का है, तो अनुरोध पूरा नहीं होगा.

ऑथराइज़ेशन

इस्तेमाल के उदाहरण के आधार पर, इसमें deliveryvehicleid, trackingid, taskid या taskids शामिल हो सकते हैं.

अगर 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 दावे शामिल न करें.

आगे क्या करना है