לפני שמשתמשים בספריית 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, כולל קטעים בנושא נסיעות על פי דרישה ומשימות מתוזמנות
- נסיעות לפי דרישה: דוגמה לאסימון לפעולה בשרת backend
- משימות מתוזמנות: דוגמה לטוקן למעקב אחרי כל המשימות והרכבים בצי
הרשאה בצד הלקוח
כשמשתמשים בספריית 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,
};
}