ก่อนใช้ไลบรารีการติดตามกลุ่ม JavaScript โปรดตรวจสอบว่าคุณ คุ้นเคยและตั้งค่า Fleet Engine แล้ว โปรดดูรายละเอียดที่หัวข้อ Fleet Engine
เอกสารนี้แสดงวิธีเปิดใช้การให้สิทธิ์ระหว่าง แอปหน้าเว็บและ Fleet Engine เมื่อคำขอที่ส่งไปยัง Fleet Engine ได้รับการตั้งค่าด้วยโทเค็นการให้สิทธิ์ที่ถูกต้อง คุณจะพร้อม ติดตามรถบนแผนที่
ตั้งค่าการให้สิทธิ์
สำหรับการเรียกเมธอด API จากสภาพแวดล้อมที่มีความน่าเชื่อถือต่ำ Fleet Engine จะต้องใช้ การใช้ JSON Web Token (JWT) ที่ลงนามโดยบัญชีบริการที่เหมาะสม สภาพแวดล้อมที่มีความน่าเชื่อถือต่ำรวมถึงสมาร์ทโฟนและเบราว์เซอร์ต่างๆ JWT จะทำงานในเซิร์ฟเวอร์ของคุณ ซึ่งเป็นสภาพแวดล้อมที่เชื่อถือได้อย่างสมบูรณ์ JWT ได้รับการรับรอง เข้ารหัส และส่งไปยังไคลเอ็นต์สำหรับการโต้ตอบกับเซิร์ฟเวอร์ในภายหลังจนกว่าจะหมดอายุหรือไม่ถูกต้องอีกต่อไป ดูรายการบทบาทของบัญชีบริการได้ที่บทบาทบัญชีบริการของ Fleet Engine ในข้อมูลเบื้องต้นเกี่ยวกับ Fleet Engine
ในทางกลับกัน แบ็กเอนด์ควรตรวจสอบสิทธิ์และให้สิทธิ์กับ Fleet Engine โดยใช้กลไกข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันมาตรฐาน
การให้สิทธิ์ทํางานอย่างไร
การให้สิทธิ์ด้วยข้อมูล Fleet Engine เกี่ยวข้องกับทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ การใช้งานของคุณ
การให้สิทธิ์ฝั่งเซิร์ฟเวอร์
ก่อนที่คุณจะตั้งค่าการให้สิทธิ์ในแอปพลิเคชันการติดตาม Fleet แบ็กเอนด์ของคุณ เซิร์ฟเวอร์ต้องสามารถแสดงโทเค็นเว็บ JSON ได้ ในกรณีนี้ Fleet Engine ทราบว่าคำขอที่มาจากแอปพลิเคชันของคุณได้รับสิทธิ์ให้เข้าถึง ข้อมูลในคำขอ ดูวิธีการติดตั้งใช้งาน JWT ฝั่งเซิร์ฟเวอร์ได้ที่ออก JSON Web Token ในส่วนFleet Engine Essentials
ในการสร้างโทเค็นจากเซิร์ฟเวอร์ของคุณเมื่อใช้การติดตาม Fleet โปรดดูที่ ดังต่อไปนี้:- หลักเกณฑ์ทั่วไปสำหรับการออกโทเค็นเว็บ JSON ซึ่งรวมถึงส่วนสำหรับทั้งการเดินทางแบบออนดีมานด์และงานที่กำหนดเวลาไว้
- การเดินทางแบบออนดีมานด์: ตัวอย่างโทเค็นสำหรับการดำเนินการของเซิร์ฟเวอร์แบ็กเอนด์
- งานที่กำหนดเวลาไว้: ตัวอย่างโทเค็นเพื่อติดตามงานและยานพาหนะทั้งหมดในกองยาน
การให้สิทธิ์ฝั่งไคลเอ็นต์
เมื่อคุณใช้ไลบรารีการติดตาม JavaScript Fleet ไลบรารีจะขอโทเค็นจากเซิร์ฟเวอร์โดยใช้เครื่องมือดึงข้อมูลโทเค็นการให้สิทธิ์ โดยจะดำเนินการเช่นนี้เมื่อข้อใดข้อหนึ่งต่อไปนี้เป็นจริง
ไม่มีโทเค็นที่ถูกต้อง เช่น เมื่อ SDK ไม่ได้เรียกใช้เครื่องมือดึงข้อมูล การโหลดหน้าเว็บใหม่หรือเมื่อตัวดึงข้อมูลไม่ได้แสดงผลพร้อมโทเค็น
โทเค็นหมดอายุแล้ว
โทเค็นจะหมดอายุภายใน 1 นาที
มิฉะนั้น ไลบรารีการติดตาม JavaScript Fleet จะใช้โทเค็นที่ออกก่อนหน้านี้และถูกต้อง และ ไม่เรียกใช้ตัวดึงข้อมูล
สร้างตัวดึงข้อมูลโทเค็นการให้สิทธิ์
สร้างตัวดึงข้อมูลโทเค็นการให้สิทธิ์โดยใช้หลักเกณฑ์ต่อไปนี้
ตัวดึงข้อมูลต้องแสดงผลโครงสร้างข้อมูลที่มี 2 ช่อง ซึ่งรวมเอาไว้ใน
Promise
ดังนี้สตริง
token
หมายเลข
expiresInSeconds
โทเค็นจะหมดอายุภายในช่วงเวลานี้ หลังจากดึงข้อมูล ตัวดึงข้อมูลโทเค็นการตรวจสอบสิทธิ์ต้องผ่านวันหมดอายุ เวลาเป็นวินาที นับจากเวลาดึงข้อมูลไปยังไลบรารีตามที่แสดงใน เป็นตัวอย่าง
ตัวดึงข้อมูลควรเรียก URL บนเซิร์ฟเวอร์ของคุณเพื่อเรียกโทเค็น ช่วงเวลานี้ URL
SERVER_TOKEN_URL
ขึ้นอยู่กับการติดตั้งใช้งานแบ็กเอนด์ URL ตัวอย่างต่อไปนี้มีไว้สำหรับแบ็กเอนด์แอปตัวอย่างบน GitHubhttps://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,
};
}