לפני שמשתמשים בספריית JavaScript למעקב אחר צי רכב, צריך לוודא שמכירים את Fleet Engine והגדרתם אותו. פרטים נוספים מופיעים במאמר בנושא Fleet Engine.
במאמר הזה נסביר איך להפעיל הרשאה בין אפליקציית דף האינטרנט לבין Fleet Engine. אחרי שתגדירו את הבקשות ל-Fleet Engine עם אסימוני ההרשאה הנכונים, תוכלו לעקוב אחרי רכב במפה.
הגדרת הרשאה
ב-Fleet Engine נדרש שימוש בטוקנים של JSON Web (JWT) לקריאות של שיטות 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, כולל קטעים בנושא נסיעות על פי דרישה ומשימות מתוזמנות
- נסיעות לפי דרישה: דוגמה לאסימון לפעולה בשרת קצה עורפי
- משימות מתוזמנות: דוגמה לטוקן למעקב אחרי כל המשימות וכלי הרכב בצי
הרשאה מצד הלקוח
כשמשתמשים בספריית JavaScript למעקב אחר צי רכבים, הספרייה מבקשת אסימון מהשרת באמצעות כלי לאחזור אסימוני הרשאה. הוא עושה זאת אם מתקיים אחד מהתנאים הבאים:
לא קיים טוקן תקין, למשל אם ה-SDK לא קרא ל-fetcher בטעינת דף חדשה, או אם ה-fetcher לא החזיר טוקן.
פג תוקפו של הטוקן.
התוקף של הטוקן עומד לפוג תוך דקה.
אחרת, ספריית JavaScript למעקב אחר צי הרכבים משתמשת באסימון התקף שהונפק קודם לכן ולא קוראת לפונקציית האחזור.
יצירת כלי לאחזור טוקן הרשאה
כדי ליצור את הפונקציה לאחזור אסימון ההרשאה, פועלים לפי ההנחיות הבאות:
ה-Fetcher צריך להחזיר מבנה נתונים עם שני שדות, שעטופים ב-
Promiseבאופן הבא:מחרוזת
token.מספר
expiresInSeconds. תוקף הטוקן יפוג אחרי פרק הזמן הזה אחרי האחזור. הפונקציה להשגת טוקן אימות חייבת לקבוע ערך (pass) של מועד התפוגה בשניות, מהזמן של השגת הטוקן לספרייה, כמו שמוצג בדוגמה.
הכלי לאחזור נתונים צריך להפעיל כתובת URL בשרת כדי לאחזר טוקן. כתובת ה-URL הזו –
SERVER_TOKEN_URL– תלויה בהטמעה של ה-Backend. כתובת ה-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,
};
}