JavaScript फ़्लीट ट्रैकिंग लाइब्रेरी का इस्तेमाल करने से पहले, पक्का करें कि आपने फ़्लीट इंजन को सेट अप कर लिया है और आपको इसके बारे में पता है. ज़्यादा जानकारी के लिए, फ़्लीट इंजन देखें.
इस दस्तावेज़ में, वेब पेज ऐप्लिकेशन और Fleet Engine के बीच अनुमति देने की सुविधा चालू करने का तरीका बताया गया है. अनुमति देने वाले सही टोकन के साथ, Fleet Engine को किए गए अनुरोध सेट अप हो जाने के बाद, मैप पर वाहन को ट्रैक किया जा सकता है.
अनुमति सेट अप करना
Fleet Engine को कम भरोसेमंद प्लैटफ़ॉर्म, जैसे कि स्मार्टफ़ोन और ब्राउज़र से एपीआई के तरीके को कॉल करने के लिए, JSON वेब टोकन (JWT) का इस्तेमाल करना ज़रूरी है.
JWT आपके सर्वर पर जनरेट होता है. इसके बाद, उस पर हस्ताक्षर किया जाता है, उसे एन्क्रिप्ट किया जाता है, और उसे क्लाइंट को भेजा जाता है. ऐसा तब तक किया जाता है, जब तक उसकी समयसीमा खत्म नहीं हो जाती या वह मान्य नहीं हो जाता.
मुख्य जानकारी
- Fleet Engine के लिए पुष्टि करने और अनुमति देने के लिए, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल का इस्तेमाल करें.
- JWTs पर हस्ताक्षर करने के लिए, किसी सही सेवा खाते का इस्तेमाल करें. Fleet Engine के बुनियादी सिद्धांत में, Fleet Engine के serviceaccount की भूमिकाएं देखें.
अनुमति देने की प्रोसेस कैसे काम करती है?
Fleet Engine के डेटा के लिए अनुमति देने की प्रोसेस, सर्वर साइड और क्लाइंट-साइड, दोनों पर लागू होती है.
सर्वर-साइड से अनुमति पाना
फ़्लीट ट्रैकिंग ऐप्लिकेशन में पुष्टि और अनुमति सेट अप करने से पहले, यह ज़रूरी है कि आपका बैकएंड सर्वर, फ़्लीट इंजन को ऐक्सेस करने के लिए, फ़्लीट ट्रैकिंग ऐप्लिकेशन को JSON वेब टोकन जारी कर सके. आपका फ़्लीट ट्रैकिंग ऐप्लिकेशन, अपने अनुरोधों के साथ ये JWT भेजता है, ताकि Fleet Engine यह पहचान सके कि अनुरोधों की पुष्टि हो चुकी है और उन्हें अनुरोध में मौजूद डेटा को ऐक्सेस करने की अनुमति है. सर्वर-साइड JWT लागू करने के निर्देशों के लिए, फ़्लीट इंजन की ज़रूरी जानकारी में जाकर, JSON वेब टोकन जारी करना देखें.
फ़्लीट ट्रैकिंग लागू करते समय, अपने सर्वर से टोकन जनरेट करने के लिए, यह तरीका अपनाएं:- 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,
};
}