JSON वेब टोकन

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

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

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

अहम जानकारी

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

JWT के एलिमेंट

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

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

JWT हेडर फ़ील्ड

फ़ील्ड

ब्यौरा

alg

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

typ

टोकन किस तरह का है. `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 मिनट का अंतर हो सकता है. अगर टाइमस्टैंप बहुत पुराना है या आने वाले समय का है, तो सर्वर गड़बड़ी की शिकायत कर सकता है.

एक्सपोनेंशियल

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:
    • ड्राइवर एसडीके हमेशा इस दावे का इस्तेमाल करता है, चाहे वह यात्रा या वाहन पर काम कर रहा हो. Fleet Engine बैकएंड, बदलाव करने से पहले यह पक्का करता है कि वाहन, अनुरोध की गई यात्रा से जुड़ा हो.
    • JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे JWT पर हस्ताक्षर करने की प्रोसेस को लागू करना आसान हो सकता है.
  • tripid:
    • Consumer SDK हमेशा इस दावे का इस्तेमाल करता है.
    • JWT में वाहन और यात्रा, दोनों से जुड़ी कार्रवाइयां शामिल हो सकती हैं. भले ही, इनकी ज़रूरत न हो. इससे टोकन साइन करने की प्रोसेस को लागू करना आसान हो सकता है.

शेड्यूल किए गए टास्क

  • deliveryvehicleid

    हर डिलीवरी वाहन के लिए एपीआई को कॉल करते समय इसका इस्तेमाल करें.

  • taskid

    हर टास्क के लिए एपीआई को कॉल करते समय इसका इस्तेमाल करें.

  • taskids

    BatchCreateTasksAPI पर कॉल करते समय इस्तेमाल करें. यह दावा, कलेक्शन के फ़ॉर्मैट में होना चाहिए. साथ ही, कलेक्शन में वे सभी टास्क आईडी शामिल होने चाहिए जो अनुरोध को पूरा करने के लिए ज़रूरी हैं. delivervehicleid, trackingid या taskid जैसे दावे शामिल न करें.

  • trackingid

    GetTaskTrackingInfoAPI को कॉल करते समय इस्तेमाल करें. दावा, अनुरोध में दिए गए ट्रैकिंग आईडी से मेल खाना चाहिए. delivervehicleid, taskid या taskids जैसे दावे शामिल न करें.

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