JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी सेट अप करना

JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने से पहले, पक्का करें कि आप Fleet Engine के बारे में जानते हैं और इसे सेट अप कर चुके हैं. ज़्यादा जानकारी के लिए, फ़्लीट इंजन देखें.

इस दस्तावेज़ में, वेब पेज ऐप्लिकेशन और Fleet Engine के बीच अनुमति देने की सुविधा चालू करने का तरीका बताया गया है. जब Fleet Engine को किए गए आपके अनुरोध सही ऑथराइज़ेशन टोकन के साथ सेट अप कर दिए जाते हैं, तब आपके पास किसी वाहन को मैप पर ट्रैक करने का विकल्प होता है.

अनुमति देने की सुविधा सेट अप करें

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

आपके बैकएंड को ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के स्टैंडर्ड तरीकों का इस्तेमाल करके, Fleet Engine के हिसाब से पुष्टि करनी चाहिए और अनुमति देनी चाहिए. पक्का करें कि आपने ऐसे JWT का इस्तेमाल किया हो जिन पर किसी मान्य सेवा खाते से हस्ताक्षर किया गया हो. सेवा खाते से जुड़ी भूमिकाओं की सूची के लिए, Fleet Engine Basics में फ़्लीट इंजन के सेवा खाते की भूमिकाएं देखें.

इसके उलट, आपके बैकएंड को ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल के मानक तरीकों का इस्तेमाल करके, Fleet Engine के लिए पुष्टि करनी चाहिए और अनुमति देनी चाहिए.

अनुमति देने की सुविधा कैसे काम करती है?

फ़्लीट इंजन डेटा को अनुमति देने में, सर्वर-साइड और क्लाइंट-साइड, दोनों तरीकों को लागू करना शामिल होता है.

सर्वर साइड से अनुमति देना

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

फ़्लीट ट्रैकिंग लागू करते समय, अपने सर्वर से टोकन जनरेट करने के लिए, यह तरीका अपनाएं:

क्लाइंट-साइड की अनुमति देना

JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने पर, यह ऑथराइज़ेशन टोकन फ़ेच करने वाले टूल का इस्तेमाल करके, सर्वर से टोकन का अनुरोध करता है. ऐसा तब करता है, जब इनमें से कोई बात सही होती है:

  • कोई मान्य टोकन मौजूद नहीं होता है. जैसे, जब SDK टूल ने पेज लोड होने पर फ़ेचर को कॉल न किया हो या जब फ़ेचर टोकन के साथ वापस न आए.

  • टोकन की समय-सीमा खत्म हो गई है.

  • टोकन की समयसीमा एक मिनट में खत्म होने वाली है.

ऐसा न करने पर, JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी, पहले जारी किए गए मान्य टोकन का इस्तेमाल करती है और फ़ेच करने वाले को कॉल नहीं करती.

अनुमति टोकन फ़ेच करने वाला टूल बनाना

इन दिशा-निर्देशों का इस्तेमाल करके, अनुमति वाला टोकन फ़ेच करने वाला टूल बनाएं:

  • फ़ेच करने वाले को दो फ़ील्ड वाला डेटा स्ट्रक्चर दिखाना चाहिए. इसे Promise में इस तरह लपेटा जाना चाहिए:

    • token स्ट्रिंग.

    • कोई नंबर expiresInSeconds. टोकन फ़ेच करने के इतने समय बाद उसकी समयसीमा खत्म हो जाती है. पुष्टि करने वाले टोकन को फ़ेच करने वाले टूल को, फ़ेच किए जाने के समय से लेकर लाइब्रेरी में तक पहुंचने के समय को सेकंड में पास करना होगा, जैसा कि उदाहरण में दिखाया गया है.

  • टोकन पाने के लिए, फ़ेच करने वाले टूल को आपके सर्वर पर मौजूद यूआरएल को कॉल करना चाहिए. यह यूआरएल--SERVER_TOKEN_URL--आपके बैकएंड के लागू होने पर निर्भर करता है. उदाहरण के लिए, नीचे दिया गया यूआरएल, GitHub पर ऐप्लिकेशन बैकएंड के सैंपल के लिए है:

    • https://SERVER_URL/token/fleet_reader

उदाहरण - अनुमति टोकन फ़ेच करने वाला टूल बनाना

नीचे दिए गए उदाहरणों में, ऑथराइज़ेशन टोकन फ़ेचर बनाने का तरीका बताया गया है:

JavaScript

async function authTokenFetcher(options) {
  // options is a record containing two keys called
  // serviceType and context. The developer should
  // generate the correct SERVER_TOKEN_URL and request
  // based on the values of these fields.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.Token,
    expiresInSeconds: data.ExpiresInSeconds
  };
}

TypeScript

function authTokenFetcher(options: {
  serviceType: google.maps.journeySharing.FleetEngineServiceType,
  context: google.maps.journeySharing.AuthTokenContext,
}): Promise<google.maps.journeySharing.AuthToken> {
  // The developer should generate the correct
  // SERVER_TOKEN_URL based on options.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.token,
    expiresInSeconds: data.ExpiresInSeconds,
  };
}

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