قبل استخدام مكتبة تتبع مجموعة JavaScript، تأكد من على دراية وإعداد Fleet Engine. للحصول على التفاصيل، يمكنك مراجعة Fleet Engine
يوضح هذا المستند كيفية تمكين التفويض بين تطبيق صفحة الويب وFleet Engine. وبعد وصول طلباتك إلى Fleet Engine باستخدام الرموز المميزة للتفويض الصحيحة، فستكون جاهزًا تتبع مركبة على الخريطة.
إعداد التفويض
بالنسبة إلى طلبات بيانات طريقة واجهة برمجة التطبيقات من البيئات المنخفضة الثقة، يتطلب Fleet Engine استخدام رموز JSON المميّزة للويب (JWT) الموقَّعة من خلال حساب خدمة مناسب. وتشمل البيئات ذات الثقة المنخفضة الهواتف الذكية والمتصفّحات. JWT على الخادم الخاص بك، والتي تُعد بيئة موثوقة بالكامل. رمز JWT توقيعها وتشفيرها وتمريرها إلى العميل في الخادم اللاحق إلى أن تنتهي صلاحيتها أو تصبح غير صالحة. بالنسبة إلى قائمة بأدوار حساب الخدمة، يُرجى الاطّلاع على أدوار حساب خدمةFleet Engine. في أساسيات Fleet Engine
في المقابل، يجب أن تتم المصادقة والتفويض ضد Fleet Engine في الخلفية. باستخدام بيانات الاعتماد التلقائية للتطبيق العادية والآليات الأخرى.
كيف يعمل التفويض؟
يشمل الترخيص باستخدام بيانات Fleet Engine كلاً من جانب الخادم ومن جهة العميل. التنفيذ.
التفويض من جهة الخادم
قبل إعداد التفويض في تطبيق تتبُّع أسطول المركبات، يجب أن يكون خادمك في الخلفية قادرًا على عرض رموز الويب المميّزة بتنسيق JSON. وبهذه الطريقة، يستخدم Fleet Engine يتعرف على الطلبات الواردة من تطبيقك على أنه مصرّح له بالوصول البيانات الواردة في الطلب. للحصول على تعليمات حول تنفيذ JWT من جهة الخادم، يمكنك الاطّلاع على اصدِر رموز الويب المميّزة JSON ضِمن Fleet Engine Essentials.
لإنشاء رموز مميزة من خادمك عند تنفيذ تتبع عدد الأجهزة، راجع التالي:- الإرشادات العامة لإصدار الرموز المميّزة للويب JSON، بما في ذلك لكل من الرحلات عند الطلب والمهام المجدولة
- الرحلات عند الطلب: مثال على رمز مميّز لعملية خادم الخلفية
- المهام المُجدوَلة: مثال على رمز مميّز لتتبُّع جميع المهام والمركبات في الأسطول
التفويض من جهة العميل
عند استخدام مكتبة تتبع مجموعة JavaScript، فإنها تطلب رمزًا مميزًا من الخادم باستخدام أداة استرجاع الرمز المميز للتفويض. ويتم ذلك في حال استيفاء أيٍّ من المتطلّبات التالية:
ولا يتوفّر رمز مميّز صالح، كأن لا تستدعي حزمة تطوير البرامج (SDK) أداة الجلب على تحميل صفحة جديدة أو في حال عدم عرض برنامج الجلب مع رمز مميّز.
انتهت صلاحية الرمز المميّز.
ستنتهي صلاحية الرمز المميّز خلال دقيقة واحدة.
وبخلاف ذلك، فإن مكتبة تتبع مجموعة JavaScript تستخدم الرمز المميز الصالح الذي تم إصداره مسبقًا عدم استدعاء برنامج الجلب.
إنشاء برنامج لاسترجاع الرمز المميّز للتفويض
يمكنك إنشاء أداة استرجاع الرمز المميّز للتفويض باتّباع الإرشادات التالية:
يجب أن يعرض برنامج الجلب بنية بيانات من حقلين، ملفوفين في
Promise
على النحو التالي:سلسلة
token
.رقم
expiresInSeconds
تنتهي صلاحية الرمز المميز خلال هذه المدة الزمنية بعد الجلب. يجب أن يجتاز برنامج استرجاع الرمز المميّز للمصادقة تاريخ انتهاء الصلاحية. الوقت بالثواني، بدءًا من وقت الجلب إلى المكتبة كما هو موضّح في المثال.
يجب أن يطلب أداة الجلب عنوان URL على خادمك لاسترداد رمز مميّز. هذا النمط يعتمد عنوان URL
SERVER_TOKEN_URL
على التنفيذ في الخلفية. المثال التالي على عنوان 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,
};
}