ตั้งค่าไลบรารีการติดตามกลุ่ม 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,
  };
}

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