לפני שמשתמשים בספריית JavaScript למעקב אחרי צי כלי רכב, חשוב להכיר את Fleet Engine ולהגדיר אותו. פרטים נוספים זמינים במאמר Fleet Engine.
במאמר הזה מוסבר איך מפעילים הרשאה בין האפליקציה בדף האינטרנט לבין Fleet Engine. אחרי שתגדירו את הבקשות ל-Fleet Engine באמצעות אסימוני ההרשאה הנכונים, תוכלו לעקוב אחרי רכב במפה.
הגדרת הרשאה
ב-Fleet Engine נדרש שימוש באסימוני JWT (JSON Web Tokens) לקריאות ל-method של API מסביבות עם רמת אמון נמוכה: סמארטפונים ודפדפנים.
אסימון JWT נוצר בשרת, נחתם, מוצפן ומועבר ללקוח לצורך אינטראקציות עתידיות עם השרת, עד שתוקף האסימון יפוג או שהוא לא יהיה בתוקף יותר.
פרטי המפתח
- משתמשים ב-Application Default Credentials כדי לבצע אימות והרשאה מול Fleet Engine.
- משתמשים בחשבון שירות מתאים כדי לחתום על אסימוני JWT. התפקידים של חשבון השירות ב-Fleet Engine מפורטים במאמר יסודות של Fleet Engine.
איך פועל תהליך האישור?
ההרשאה באמצעות נתוני Fleet Engine כוללת הטמעה גם בצד השרת וגם בצד הלקוח.
הרשאה בצד השרת
לפני שמגדירים אימות והרשאה באפליקציה למעקב אחרי כלי הרכב, שרת הקצה העורפי צריך להיות מסוגל להנפיק לאפליקציה אסימוני אינטרנט בפורמט JSON כדי לקבל גישה ל-Fleet Engine. אפליקציית המעקב אחרי הרכבים שלכם שולחת את אסימוני ה-JWT האלה עם הבקשות שלה, כדי ש-Fleet Engine יזהה את הבקשות כמאומתות ומורשות לגשת לנתונים שבבקשה. להוראות להטמעת JWT בצד השרת, ראו הנפקת אסימוני אינטרנט מסוג JSON בקטע יסודות של Fleet Engine.
כדי ליצור אסימונים מהשרת כשמפעילים מעקב אחרי צי כלי רכב, תוכלו לעיין במאמרים הבאים:- הנחיות כלליות להנפקת אסימוני אינטרנט מסוג JSON, כולל קטעים לגבי נסיעות על פי דרישה ומשימות מתוזמנות
- נסיעות על פי דרישה: אסימון לדוגמה לפעולה בשרת לקצה העורפי
- משימות מתוזמנות: אסימון לדוגמה למעקב אחרי כל המשימות והרכבים בצי
הרשאה בצד הלקוח
כשמשתמשים בספריית המעקב של Fleet ב-JavaScript, היא מבקשת אסימון מהשרת באמצעות גורם לאחזור אסימוני הרשאה. המערכת עושה זאת אם אחד מהמצבים הבאים מתקיים:
אין טוקן תקף, למשל כש-SDK לא קרא למאחזר בטעינה של דף חדש, או כשהמאחזר לא החזיר טוקן.
פג תוקפו של הטוקן.
תוקף האסימון יפוג תוך דקה.
אחרת, ספריית המעקב של JavaScript ל-Fleet משתמשת באסימון החוקי שהונפק בעבר ולא מפעילה את האחזור.
יצירת אובייקט לאחזור אסימון הרשאה
יוצרים את האוסף של אסימוני ההרשאה לפי ההנחיות הבאות:
אוסף הנתונים חייב להחזיר מבנה נתונים עם שני שדות, עטוף ב-
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,
};
}