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