Menyiapkan JavaScript Consumer SDK

Dengan JavaScript Consumer SDK, aplikasi konsumen Anda dapat menampilkan lokasi kendaraan dan lokasi minat lainnya yang dilacak di Fleet Engine pada platform berbasis web peta. Hal ini memungkinkan pengguna konsumen Anda melihat progres pengiriman mereka. Panduan ini mengasumsikan bahwa Anda telah menyiapkan Fleet Engine dengan project Google Cloud dan kunci API terkait. Lihat Fleet Engine untuk mengetahui detailnya.

Anda menyiapkan JavaScript Consumer SDK dengan mengikuti langkah-langkah berikut:

  1. Aktifkan Maps JavaScript API.
  2. Menyiapkan otorisasi.

Mengaktifkan Maps JavaScript API

Mengaktifkan Maps JavaScript API di project Konsol Google Cloud yang Anda gunakan untuk instance Fleet Engine Anda. Untuk detail selengkapnya, lihat Mengaktifkan API di dokumentasi Maps JavaScript API.

Menyiapkan otorisasi

Untuk panggilan metode API dari lingkungan dengan tingkat kepercayaan rendah, Fleet Engine memerlukan penggunaan Token Web JSON (JWT) yang ditandatangani oleh akun layanan yang sesuai. Lingkungan dengan tingkat kepercayaan rendah mencakup smartphone dan browser. JWT berasal dari server Anda, yang merupakan lingkungan yang sepenuhnya tepercaya. JWT ditandatangani, dienkripsi, dan diteruskan ke klien untuk interaksi server berikutnya hingga masa berlakunya habis atau tidak lagi valid.

Backend Anda harus melakukan autentikasi dan melakukan otorisasi terhadap Fleet Engine menggunakan mekanisme Kredensial Default Aplikasi standar. Merek pastikan untuk menggunakan JWT yang telah ditandatangani oleh akun layanan yang sesuai. Untuk daftar peran akun layanan, lihat peran akun layanan Fleet Engine di Dasar-Dasar Fleet Engine.

Aplikasi konsumen Anda harus mengautentikasi pengguna akhir dengan delivery_consumer peran dari project Google Cloud Anda hanya ditampilkan informasi khusus konsumen. Dengan cara ini, Fleet Engine memfilter dan menyamarkan semua informasi lain dalam responsnya. Misalnya, selama tugas ketidaktersediaan, tidak ada informasi lokasi yang dibagikan kepada pengguna akhir. Lihat Akun layanan peran untuk tugas terjadwal.

Sebaliknya, backend Anda harus mengautentikasi dan memberikan otorisasi ke Fleet Engine menggunakan mekanisme Kredensial Default Aplikasi standar.

Bagaimana cara kerja otorisasi?

Otorisasi dengan data Fleet Engine melibatkan implementasi sisi server dan sisi klien.

Otorisasi sisi server

Sebelum Anda menyiapkan autentikasi dan otorisasi di solusi berbasis web aplikasi, server backend Anda harus dapat menerbitkan Token Web JSON ke aplikasi berbasis web untuk akses ke Fleet Engine. Aplikasi berbasis web Anda mengirimkan JWT ini bersama permintaannya sehingga Fleet Engine mengenali permintaan tersebut diotentikasi dan diberi otorisasi untuk mengakses data di permintaan. Untuk petunjuk tentang implementasi JWT sisi server, lihat Masalah Web JSON Token di bagian Fleet Engine Essentials.

Secara khusus, perhatikan hal berikut untuk JavaScript Consumer SDK untuk melacak pengiriman:

Otorisasi sisi klien

Saat Anda menggunakan JavaScript Consumer SDK, SDK akan meminta token dari server menggunakan pengambil token otorisasi. Hal ini dilakukan jika salah satu hal berikut benar:

  • Tidak ada token yang valid, seperti saat SDK belum memanggil pengambil di pemuatan halaman baru, atau saat pengambil belum menampilkan token.

  • Masa berlaku token telah berakhir.

  • Masa berlaku token akan berakhir dalam waktu satu menit.

Jika tidak, JavaScript Consumer SDK akan menggunakan token valid yang dikeluarkan sebelumnya dan tidak memanggil pengambil.

Membuat pengambil token otorisasi

Buat pengambil token otorisasi menggunakan panduan ini:

  • Pengambil harus menampilkan struktur data dengan dua kolom, yang digabungkan dalam Promise sebagai berikut:

    • String token.

    • Nomor expiresInSeconds. Masa berlaku token akan berakhir dalam jangka waktu ini setelah pengambilan. Pengambil token autentikasi harus meneruskan masa berlaku waktu dalam detik, dari waktu pengambilan ke koleksi seperti yang ditampilkan di contoh.

  • Pengambil harus memanggil URL di server Anda untuk mengambil token. Ini URL--SERVER_TOKEN_URL--bergantung pada implementasi backend Anda. Tujuan contoh URL berikut adalah untuk contoh backend aplikasi di GitHub:

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

Contoh - Membuat pengambil token autentikasi

Contoh berikut menunjukkan cara membuat pengambil 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