ตั้งค่าไลบรารีการติดตามกลุ่ม JavaScript

ก่อนใช้ไลบรารีการติดตามกลุ่มยานพาหนะ JavaScript โปรดตรวจสอบว่าคุณ คุ้นเคยและได้ตั้งค่า Fleet Engine แล้ว โปรดดูรายละเอียดที่หัวข้อ Fleet Engine

เอกสารนี้แสดงวิธีเปิดใช้การให้สิทธิ์ระหว่างแอปหน้าเว็บกับ Fleet Engine เมื่อตั้งค่าคำขอไปยัง Fleet Engine โดยใช้โทเค็นการให้สิทธิ์ที่ถูกต้องแล้ว คุณก็พร้อมที่จะ ติดตามยานพาหนะบนแผนที่

ตั้งค่าการให้สิทธิ์

Fleet Engine กําหนดให้ใช้ JSON Web Token (JWT) สําหรับการเรียกเมธอด API จากสภาพแวดล้อมที่มีความน่าเชื่อถือต่ำ ได้แก่ สมาร์ทโฟนและเบราว์เซอร์

JWT มาจากเซิร์ฟเวอร์ของคุณ มีการลงนาม เข้ารหัส และส่งไปยังไคลเอ็นต์ สำหรับการโต้ตอบกับเซิร์ฟเวอร์ในภายหลังจนกว่าจะหมดอายุหรือไม่ถูกต้องอีกต่อไป

รายละเอียดสำคัญ

การให้สิทธิ์ทำงานอย่างไร

การให้สิทธิ์ด้วยข้อมูล Fleet Engine เกี่ยวข้องกับการติดตั้งใช้งานทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์

การให้สิทธิ์ฝั่งเซิร์ฟเวอร์

ก่อนที่จะตั้งค่าการตรวจสอบสิทธิ์และการให้สิทธิ์ในแอปพลิเคชันการติดตามกองยานพาหนะ เซิร์ฟเวอร์แบ็กเอนด์ต้องออกโทเค็นเว็บ JSON ให้กับแอปพลิเคชันการติดตามกองยานพาหนะเพื่อเข้าถึง Fleet Engine ได้ แอปพลิเคชันติดตามยานพาหนะ จะส่ง JWT เหล่านี้ไปกับคำขอเพื่อให้ Fleet Engine รู้จักคำขอว่า ได้รับการตรวจสอบสิทธิ์และได้รับอนุญาตให้เข้าถึงข้อมูลใน คำขอ ดูวิธีการติดตั้งใช้งาน JWT ฝั่งเซิร์ฟเวอร์ได้ที่ออกโทเค็นเว็บ JSON ในส่วนข้อควรทราบเกี่ยวกับ Fleet Engine

หากต้องการสร้างโทเค็นจากเซิร์ฟเวอร์เมื่อติดตั้งใช้งานการติดตามกลุ่มยานพาหนะ โปรดดูข้อมูลต่อไปนี้

การให้สิทธิ์ฝั่งไคลเอ็นต์

เมื่อใช้ไลบรารีการติดตามกลุ่มยานพาหนะ JavaScript ระบบจะขอโทเค็นจากเซิร์ฟเวอร์โดยใช้ เครื่องมือดึงข้อมูลโทเค็นการให้สิทธิ์ โดยจะดำเนินการเมื่อมีสิ่งต่อไปนี้

  • ไม่มีโทเค็นที่ถูกต้อง เช่น เมื่อ SDK ไม่ได้เรียกใช้ Fetcher ใน การโหลดหน้าเว็บใหม่ หรือเมื่อ Fetcher ไม่ได้ส่งคืนโทเค็น

  • โทเค็นหมดอายุแล้ว

  • โทเค็นกำลังจะหมดอายุภายใน 1 นาที

มิฉะนั้น ไลบรารีการติดตามกลุ่มยานพาหนะ JavaScript จะใช้โทเค็นที่ออกให้ก่อนหน้านี้ซึ่งยังใช้งานได้ และจะไม่เรียกใช้ Fetcher

สร้างตัวดึงข้อมูลโทเค็นการให้สิทธิ์

สร้างตัวดึงข้อมูลโทเค็นการให้สิทธิ์โดยใช้หลักเกณฑ์ต่อไปนี้

  • ตัวดึงข้อมูลต้องส่งคืนโครงสร้างข้อมูลที่มี 2 ฟิลด์ ซึ่งอยู่ใน 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,
  };
}

ขั้นตอนถัดไป