জাভাস্ক্রিপ্ট ফ্লিট ট্র্যাকিং লাইব্রেরি ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি ফ্লিট ইঞ্জিনের সাথে পরিচিত এবং সেট আপ করেছেন। বিস্তারিত জানার জন্য, ফ্লিট ইঞ্জিন দেখুন।
এই ডকুমেন্টে দেখানো হয়েছে কিভাবে ওয়েব পেজ অ্যাপ এবং ফ্লিট ইঞ্জিনের মধ্যে অনুমোদন সক্ষম করতে হয়। একবার ফ্লিট ইঞ্জিনের কাছে আপনার অনুরোধগুলি সঠিক অনুমোদন টোকেন দিয়ে সেট আপ হয়ে গেলে, আপনি একটি মানচিত্রে একটি যানবাহন ট্র্যাক করতে প্রস্তুত থাকবেন।
অনুমোদন সেট আপ করুন
ফ্লিট ইঞ্জিনকে কম-বিশ্বাসী পরিবেশ : স্মার্টফোন এবং ব্রাউজার থেকে API পদ্ধতি কলের জন্য JSON ওয়েব টোকেন (JWTs) ব্যবহার করতে হবে।
একটি JWT আপনার সার্ভারে উৎপন্ন হয়, স্বাক্ষরিত হয়, এনক্রিপ্ট করা হয় এবং পরবর্তী সার্ভার ইন্টারঅ্যাকশনের জন্য ক্লায়েন্টের কাছে প্রেরণ করা হয় যতক্ষণ না এটির মেয়াদ শেষ হয় বা আর বৈধ থাকে না।
মূল বিবরণ
- ফ্লিট ইঞ্জিনের বিরুদ্ধে প্রমাণীকরণ এবং অনুমোদনের জন্য অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র ব্যবহার করুন।
- JWT স্বাক্ষর করার জন্য একটি উপযুক্ত পরিষেবা অ্যাকাউন্ট ব্যবহার করুন। Fleet Engine Basics- এ Fleet Engine serviceaccount ভূমিকা দেখুন।
অনুমোদন কিভাবে কাজ করে?
ফ্লিট ইঞ্জিন ডেটার অনুমোদনের ক্ষেত্রে সার্ভার-সাইড এবং ক্লায়েন্ট-সাইড উভয় বাস্তবায়ন জড়িত।
সার্ভার-সাইড অনুমোদন
আপনার ফ্লিট ট্র্যাকিং অ্যাপ্লিকেশনে প্রমাণীকরণ এবং অনুমোদন সেট আপ করার আগে, আপনার ব্যাকএন্ড সার্ভারকে ফ্লিট ইঞ্জিন অ্যাক্সেসের জন্য আপনার ফ্লিট ট্র্যাকিং অ্যাপ্লিকেশনে JSON ওয়েব টোকেন ইস্যু করতে সক্ষম হতে হবে। আপনার ফ্লিট ট্র্যাকিং অ্যাপ্লিকেশন এই JWT গুলিকে তার অনুরোধগুলি সহ পাঠায় যাতে ফ্লিট ইঞ্জিন অনুরোধগুলিকে প্রমাণিত এবং অনুরোধে ডেটা অ্যাক্সেস করার জন্য অনুমোদিত হিসাবে স্বীকৃতি দেয়। সার্ভার-সাইড JWT বাস্তবায়নের নির্দেশাবলীর জন্য, ফ্লিট ইঞ্জিন এসেনশিয়ালস এর অধীনে ইস্যু JSON ওয়েব টোকেন দেখুন।
ফ্লিট ট্র্যাকিং বাস্তবায়নের সময় আপনার সার্ভার থেকে টোকেন তৈরি করতে, নিম্নলিখিতগুলি দেখুন:- JSON ওয়েব টোকেন ইস্যু করার জন্য সাধারণ নির্দেশিকা , যার মধ্যে অন-ডিমান্ড ট্রিপ এবং নির্ধারিত কাজ উভয়ের জন্য বিভাগ অন্তর্ভুক্ত রয়েছে।
- অন-ডিমান্ড ট্রিপ: ব্যাকএন্ড সার্ভার অপারেশনের জন্য উদাহরণ টোকেন
- নির্ধারিত কাজ: বহরের সমস্ত কাজ এবং যানবাহন ট্র্যাক করার জন্য উদাহরণ টোকেন
ক্লায়েন্ট-সাইড অনুমোদন
যখন আপনি জাভাস্ক্রিপ্ট ফ্লিট ট্র্যাকিং লাইব্রেরি ব্যবহার করেন, তখন এটি একটি অনুমোদন টোকেন ফেচার ব্যবহার করে সার্ভার থেকে একটি টোকেনের অনুরোধ করে। এটি তখনই করে যখন নিম্নলিখিত যেকোনো একটি সত্য হয়:
কোনও বৈধ টোকেন বিদ্যমান নেই, যেমন যখন SDK একটি নতুন পৃষ্ঠা লোডের সময় ফেচারকে কল করে না, অথবা যখন ফেচার কোনও টোকেন নিয়ে ফিরে আসে না।
টোকেনটির মেয়াদ শেষ হয়ে গেছে।
টোকেনটির মেয়াদ শেষ হওয়ার এক মিনিটের মধ্যে।
অন্যথায়, জাভাস্ক্রিপ্ট ফ্লিট ট্র্যাকিং লাইব্রেরি পূর্বে ইস্যু করা, বৈধ টোকেন ব্যবহার করে এবং ফেচারকে কল করে না।
একটি অনুমোদন টোকেন ফেচার তৈরি করুন
এই নির্দেশিকাগুলি ব্যবহার করে আপনার অনুমোদন টোকেন ফেচার তৈরি করুন:
ফেচারকে অবশ্যই দুটি ফিল্ড সহ একটি ডেটা স্ট্রাকচার ফেরত দিতে হবে , যা একটি
Promiseমোড়ানো থাকবে নিম্নরূপ:একটি স্ট্রিং
token।একটি সংখ্যা
expiresInSeconds। একটি টোকেন আনার পর এই সময়ের মধ্যে মেয়াদ শেষ হয়ে যায়। প্রমাণীকরণ টোকেন আনার সময় থেকে লাইব্রেরিতে আনার সময় থেকে উদাহরণে দেখানো সময় পর্যন্ত, অথেনটিকেশন টোকেন আনার সময়টি কয়েক সেকেন্ডে অতিক্রম করতে হবে।
টোকেন পুনরুদ্ধার করার জন্য ফেচারকে আপনার সার্ভারে একটি URL কল করতে হবে । এই URL--
SERVER_TOKEN_URL--আপনার ব্যাকএন্ড বাস্তবায়নের উপর নির্ভর করে। নিম্নলিখিত উদাহরণ URLটি GitHub-এর নমুনা অ্যাপ ব্যাকএন্ডের জন্য:-
https://SERVER_URL/token/fleet_reader
-
উদাহরণ - একটি অনুমোদন টোকেন ফেচার তৈরি করুন
নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে একটি অনুমোদন টোকেন ফেচার তৈরি করতে হয়:
জাভাস্ক্রিপ্ট
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
};
}
টাইপস্ক্রিপ্ট
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,
};
}