באמצעות JavaScript Consumer SDK, אפליקציה למשתמשים יכולה להציג את המיקום של כלי רכב ומיקומים אחרים שמעניינים את המשתמשים, שמתבצע אחריהם מעקב ב-Fleet Engine, במפה מבוססת-אינטרנט. כך הלקוחות יכולים לראות את התקדמות המסלול של הנהג. המדריך הזה מבוסס על ההנחה שהגדרתם את Fleet Engine עם פרויקט Google Cloud ומפתחות API משויכים. פרטים נוספים זמינים במאמר בנושא Fleet Engine.
כדי להגדיר את JavaScript Consumer SDK, מבצעים את השלבים הבאים:
הפעלת Maps JavaScript API
מפעילים את Maps JavaScript API במסוף Google Cloud. פרטים נוספים זמינים במאמר בנושא הפעלת ממשקי API במאמרי העזרה של Google Cloud. הפעולה הזו מפעילה את Consumer SDK ל-JavaScript.
הגדרת הרשאה
ב-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 Web בקטע היסודות של Fleet Engine.
בפרט, חשוב לזכור את הנקודות הבאות לגבי ה-SDK של JavaScript Consumer לשיתוף התקדמות הנסיעה:- הנחיות כלליות להנפקת אסימוני אינטרנט מסוג JSON
- הנחיות לגבי אסימוני JWT לנסיעות על פי דרישה
- דוגמה לטוקן של פעולת צרכן
הרשאה בצד הלקוח
כשמשתמשים ב-SDK של צרכן JavaScript, הוא מבקש טוקן מהשרת באמצעות כלי לאחזור טוקן הרשאה. היא עושה זאת אם אחד מהתנאים הבאים מתקיים:
לא קיים טוקן תקף, למשל אם ה-SDK לא קרא ל-fetcher בטעינת דף חדשה, או אם ה-fetcher לא החזיר טוקן.
פג תוקפו של הטוקן.
התוקף של הטוקן עומד לפוג תוך דקה.
אחרת, JavaScript Consumer SDK משתמש בטוקן הקודם התקף ולא קורא ל-fetcher.
יצירת כלי לאחזור טוקן הרשאה
כדי ליצור את הפונקציה לאחזור אסימון ההרשאה, פועלים לפי ההנחיות הבאות:
ה-Fetcher חייב להחזיר מבנה נתונים עם שני שדות, שעטופים ב-
Promiseבאופן הבא:מחרוזת
token.מספר
expiresInSeconds. תוקף הטוקן יפוג אחרי פרק הזמן הזה מרגע האחזור. הפונקציה לאחזור אסימון האימות צריכה להעביר את תאריך התפוגה בשניות, מהזמן של האחזור לספרייה, כמו שמוצג בדוגמה.
הכלי לאחזור נתונים צריך לקרוא לכתובת URL בשרת כדי לאחזר טוקן. כתובת ה-URL הזו –
SERVER_TOKEN_URL– תלויה בהטמעה של ה-backend. כתובת ה-URL הבאה היא של הקצה העורפי של האפליקציה לדוגמה ב-GitHub:https://SERVER_URL/token/consumer/TRIPID
דוגמה – יצירת כלי לאחזור אסימון אימות
בדוגמאות הבאות אפשר לראות איך ליצור כלי לאחזור אסימוני הרשאה:
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,
};
}