Menyiapkan library pelacakan fleet JavaScript
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Sebelum menggunakan library pelacakan armada JavaScript, pastikan Anda memahami dan telah menyiapkan Fleet Engine. Untuk mengetahui detailnya, lihat
Fleet Engine.
Dokumen ini menunjukkan cara mengaktifkan otorisasi antara aplikasi halaman web dan Fleet Engine. Setelah permintaan Anda ke Fleet Engine disiapkan dengan token otorisasi yang benar, Anda akan siap melacak kendaraan di peta.
Menyiapkan otorisasi
Fleet Engine mewajibkan penggunaan Token Web JSON (JWT) untuk panggilan metode API
dari lingkungan dengan tingkat kepercayaan rendah: smartphone dan browser.
JWT berasal dari server Anda, ditandatangani, dienkripsi, dan diteruskan ke klien untuk interaksi server berikutnya hingga masa berlakunya habis atau tidak lagi valid.
Detail utama
Bagaimana cara kerja otorisasi?
Otorisasi dengan data Fleet Engine melibatkan penerapan sisi server dan sisi klien.
Otorisasi sisi server
Sebelum menyiapkan autentikasi dan otorisasi di aplikasi Pelacakan armada, server backend Anda harus dapat menerbitkan Token Web JSON ke aplikasi Pelacakan armada Anda untuk mengakses Fleet Engine. Aplikasi Pelacakan armada Anda mengirimkan JWT ini dengan permintaannya sehingga Fleet Engine mengenali permintaan tersebut sebagai permintaan yang diautentikasi dan diberi otorisasi untuk mengakses data dalam permintaan. Untuk mengetahui petunjuk tentang penerapan JWT di sisi server, lihat Mengeluarkan Token Web JSON di bagian Dasar-Dasar Fleet Engine.
Untuk membuat token dari server Anda saat menerapkan Pelacakan armada, lihat
berikut ini:
Otorisasi sisi klien
Saat Anda menggunakan library Pelacakan armada JavaScript, library tersebut akan meminta token dari server menggunakan
pengambil token otorisasi. Hal ini dilakukan saat salah satu kondisi berikut terpenuhi:
Tidak ada token yang valid, seperti saat SDK belum memanggil fetcher pada
pemuatan halaman baru, atau saat fetcher belum menampilkan token.
Masa berlaku token telah berakhir.
Masa berlaku token akan berakhir dalam satu menit.
Jika tidak, library pelacakan Fleet JavaScript akan menggunakan token valid yang dikeluarkan sebelumnya dan tidak
memanggil fetcher.
Membuat pengambilan token otorisasi
Buat pengambilan token otorisasi Anda menggunakan panduan berikut:
Pengambilan data harus menampilkan struktur data dengan dua kolom, yang di-wrap dalam
Promise
sebagai berikut:
Pengambil harus memanggil URL di server Anda untuk mengambil token. URL
ini--SERVER_TOKEN_URL
--bergantung pada penerapan backend Anda. URL contoh berikut adalah untuk backend aplikasi contoh di GitHub:
https://SERVER_URL/token/fleet_reader
Contoh - Membuat pengambilan token otorisasi
Contoh berikut menunjukkan cara membuat pengambilan token otorisasi:
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,
};
}
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-09-05 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-09-05 UTC."],[[["\u003cp\u003eBefore using the JavaScript Fleet tracking library, ensure you have Fleet Engine set up and are familiar with it.\u003c/p\u003e\n"],["\u003cp\u003eFleet Engine requires JSON Web Tokens (JWTs) for API calls from low-trust environments like web browsers.\u003c/p\u003e\n"],["\u003cp\u003eYour backend server should be configured to issue JWTs to your Fleet tracking application for authentication and authorization with Fleet Engine.\u003c/p\u003e\n"],["\u003cp\u003eThe JavaScript Fleet tracking library utilizes an authorization token fetcher to request and manage JWTs, ensuring secure communication with Fleet Engine.\u003c/p\u003e\n"],["\u003cp\u003eAfter setting up authorization, you can proceed with tracking vehicles and viewing your fleet in real-time.\u003c/p\u003e\n"]]],["Fleet Engine authorization requires JSON Web Tokens (JWTs) for API calls from low-trust environments. Your backend server issues signed, encrypted JWTs to the client. Use Application Default Credentials and service accounts to authenticate. The JavaScript Fleet tracking library uses an authorization token fetcher to get a token from your server. The fetcher must return a token and its expiration time. The library requests a new token if no valid token exists, if it has expired, or if it is near expiring.\n"],null,["Before using the JavaScript fleet tracking library, make sure you are\nfamiliar with and have set up Fleet Engine. For details, see\n[Fleet Engine](/maps/documentation/mobility/fleet-engine).\n\nThis document shows how to enable authorization between the\nweb page app and Fleet Engine. Once your requests to Fleet Engine have\nbeen set up with the correct authorization tokens, you'll be ready to\ntrack a vehicle on a map.\n\nSet up authorization\n\nFleet Engine requires the use of **JSON Web Tokens** (JWTs) for API method calls\nfrom **low-trust environments**: smartphones and browsers.\n\nA JWT originates on your server, is signed, encrypted, and passed to the client\nfor subsequent server interactions until it expires or is no longer valid.\n\n**Key details**\n\n- Use [Application Default Credentials](https://google.aip.dev/auth/4110) to authenticate and authorize against Fleet Engine.\n- Use an appropriate service account to sign JWTs. See [Fleet Engine serviceaccount](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts#fleet_engine_service_account_roles) roles in **Fleet Engine Basics**.\n\nHow does authorization work?\n\nAuthorization with Fleet Engine data involves both server-side and client-side\nimplementation.\n\nServer-side authorization\n\nBefore you set up authentication and authorization in your Fleet tracking\napplication, your backend server must be able to issue JSON Web Tokens to your\nFleet tracking application for access to Fleet Engine. Your Fleet tracking application\nsends these JWTs with its requests so Fleet Engine recognizes the requests as\nauthenticated and authorized to access the data in the\nrequest. For instructions on server-side JWT implementation, see [Issue JSON Web\nTokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt) under **Fleet Engine Essentials**.\nTo generate tokens from your server when implementing Fleet tracking, see the following:\n\n\u003cbr /\u003e\n\n- [General guidelines](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#general_guidelines) for issuing JSON Web Tokens, including sections for both on-demand trips and scheduled tasks\n- On-demand trips: [Example token for a backend server operation](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#example_token_for_a_backend_server_operation)\n- Scheduled tasks: [Example token to track all tasks and vehicles in the\n fleet](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#example_token_to_track_all_tasks_and_vehicles)\n\nClient-side authorization\n\nWhen you use the JavaScript Fleet tracking library, it requests a token from the server using an\nauthorization token fetcher. It does this when any of the following is true:\n\n- No valid token exists, such as when the SDK hasn't called the fetcher on a\n fresh page load, or when the fetcher hasn't returned with a token.\n\n- The token has expired.\n\n- The token is within one minute of expiring.\n\nOtherwise, the JavaScript Fleet tracking library uses the previously-issued, valid token and does not\ncall the fetcher.\n\nCreate an authorization token fetcher\n\nCreate your authorization token fetcher using these guidelines:\n\n- **The fetcher must return a data structure with two fields** , wrapped in a\n `Promise` as follows:\n\n - A string `token`.\n\n - A number `expiresInSeconds`. A token expires in this amount of time\n after fetching. The authentication token fetcher must pass the expiry\n time in seconds, from the time of fetching to the library as shown in\n the example.\n\n- **The fetcher should call a URL on your server** to retrieve a token. This\n URL--the `SERVER_TOKEN_URL`--depends on your backend implementation. The\n following example URL is for the [sample app backend on GitHub](https://github.com/googlemaps/last-mile-fleet-solution-samples/tree/main/backend):\n\n - `https://SERVER_URL/token/fleet_reader`\n\nExample - Create an authorization token fetcher\n\nThe following examples show how to create an authorization token fetcher: \n\nJavaScript \n\n async function authTokenFetcher(options) {\n // options is a record containing two keys called\n // serviceType and context. The developer should\n // generate the correct SERVER_TOKEN_URL and request\n // based on the values of these fields.\n const response = await fetch(SERVER_TOKEN_URL);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n return {\n token: data.Token,\n expiresInSeconds: data.ExpiresInSeconds\n };\n }\n\nTypeScript \n\n function authTokenFetcher(options: {\n serviceType: google.maps.journeySharing.FleetEngineServiceType,\n context: google.maps.journeySharing.AuthTokenContext,\n }): Promise\u003cgoogle.maps.journeySharing.AuthToken\u003e {\n // The developer should generate the correct\n // SERVER_TOKEN_URL based on options.\n const response = await fetch(SERVER_TOKEN_URL);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n return {\n token: data.token,\n expiresInSeconds: data.ExpiresInSeconds,\n };\n }\n\nWhat's next\n\n- [Track a vehicle](/maps/documentation/mobility/operations/fleet-tracking/follow)\n- [View a fleet](/maps/documentation/mobility/operations/fleet-tracking/view-fleet)"]]