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