قبل از استفاده از کتابخانه ردیابی ناوگان جاوا اسکریپت، مطمئن شوید که Fleet Engine را راه اندازی کرده اید. برای جزئیات، به Fleet Engine مراجعه کنید.
این سند نحوه فعال کردن مجوز بین برنامه صفحه وب و Fleet Engine را نشان می دهد. هنگامی که درخواست های شما به Fleet Engine با توکن های مجوز صحیح تنظیم شد، آماده ردیابی وسیله نقلیه بر روی نقشه خواهید بود.
مجوز را تنظیم کنید
برای فراخوانیهای روش API از محیطهای کماعتماد ، Fleet Engine به استفاده از JSON Web Tokens (JWT) که توسط یک حساب سرویس مناسب امضا شدهاند، نیاز دارد. محیط های کم اعتماد شامل گوشی های هوشمند و مرورگرها هستند. یک JWT در سرور شما ایجاد می شود که یک محیط کاملاً قابل اعتماد است. JWT امضا می شود، رمزگذاری می شود و برای تعاملات بعدی سرور به مشتری ارسال می شود تا زمانی که منقضی شود یا دیگر معتبر نباشد.
باطن شما باید با استفاده از مکانیزم های استاندارد Application Default Credentials احراز هویت و مجوز در برابر Fleet Engine را صادر کند. مطمئن شوید که از JWT هایی استفاده می کنید که توسط یک حساب سرویس مناسب امضا شده اند. برای فهرستی از نقشهای حساب سرویس، نقشهای حساب خدمات Fleet Engine را در Fleet Engine Basics ببینید.
در مقابل، باطن شما باید با استفاده از مکانیزم های استاندارد Application Default Credentials، احراز هویت و مجوز را در مقابل Fleet Engine انجام دهد.
مجوز چگونه کار می کند؟
مجوز با دادههای Fleet Engine شامل اجرای سمت سرور و مشتری میشود.
مجوز سمت سرور
قبل از اینکه احراز هویت و مجوز را در برنامه ردیابی Fleet خود تنظیم کنید، سرور باطن شما باید بتواند برای دسترسی به Fleet Engine، JSON Web Tokens را برای برنامه ردیابی ناوگان شما صادر کند. برنامه ردیابی ناوگان شما این JWT ها را همراه با درخواست های خود ارسال می کند، بنابراین Fleet Engine درخواست ها را به عنوان تأیید شده و مجاز برای دسترسی به داده های موجود در درخواست تشخیص می دهد. برای دستورالعملهای مربوط به اجرای JWT سمت سرور، به شماره JSON Web Tokens در بخش Fleet Engine Essentials مراجعه کنید.
برای تولید توکن ها از سرور خود هنگام اجرای Fleet Tracking، به موارد زیر مراجعه کنید:- دستورالعمل های عمومی برای صدور JSON Web Token، شامل بخش هایی برای سفرهای درخواستی و کارهای برنامه ریزی شده
- سفرهای درخواستی: توکن نمونه برای عملیات سرور باطن
- وظایف برنامه ریزی شده: نشانه مثال برای ردیابی تمام وظایف و وسایل نقلیه در ناوگان
مجوز سمت مشتری
هنگامی که از کتابخانه ردیابی ناوگان جاوا اسکریپت استفاده می کنید، با استفاده از واکشی توکن مجوز از سرور توکن درخواست می کند. زمانی این کار را انجام می دهد که یکی از موارد زیر درست باشد:
هیچ نشانه معتبری وجود ندارد، مانند زمانی که SDK واکشی را در بارگیری صفحه جدید فراخوانی نکرده است، یا زمانی که واکشی با یک نشانه برنگشته است.
توکن منقضی شده است.
توکن در عرض یک دقیقه پس از انقضا است.
در غیر این صورت، کتابخانه ردیابی ناوگان جاوا اسکریپت از توکن معتبر صادر شده قبلی استفاده می کند و واکشی را فراخوانی نمی کند.
یک واکشی نشانه مجوز ایجاد کنید
با استفاده از این دستورالعمل ها واکشی نشانه مجوز خود را ایجاد کنید:
واکشی باید یک ساختار داده با دو فیلد را برگرداند که در یک
Promise
به صورت زیر پیچیده شده است:یک
token
رشتهیک عدد
expiresInSeconds
. یک توکن در این مدت پس از واکشی منقضی می شود. واکشی نشانه احراز هویت باید زمان انقضا را بر حسب ثانیه طی کند، از زمان واکشی به کتابخانه همانطور که در مثال نشان داده شده است.
واکشی باید یک URL در سرور شما برای بازیابی یک نشانه فراخوانی کند . این URL -
SERVER_TOKEN_URL
- به پیاده سازی backend شما بستگی دارد. 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
};
}
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,
};
}