JSON वेब टोकन

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

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

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

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

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

JWT के एलिमेंट

JWT में एक हेडर और एक दावा सेक्शन होता है. हेडर सेक्शन में, सेवा खातों से मिली निजी कुंजी और एन्क्रिप्शन एल्गोरिदम जैसी जानकारी होती है. दावे वाले सेक्शन में, 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 फ़ील्ड में मौजूद होता है.

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

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