JSON वेब टोकन

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

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

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

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

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

JWT एलिमेंट

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

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

JWT हेडर फ़ील्ड

फ़ील्ड

जानकारी

alg

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

typ

टोकन का टाइप. `JWT`.

बच्चा

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

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

फ़ील्ड

जानकारी

iss

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

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

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

ऑडियो

आपके सेवा खाते का 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": ["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 दावे शामिल न करें.

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