JSON वेब टोकन

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 प्रोजेक्ट में इन फ़ील्ड की वैल्यू कहां मिल सकती हैं.

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

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