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