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