โทเค็นเว็บ JSON

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

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

ในทางกลับกัน แบ็กเอนด์ของคุณควรตรวจสอบสิทธิ์และให้สิทธิ์กับ Fleet Engine โดยใช้ Application Default Credentials แบบมาตรฐาน และกลไกต่างๆ

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

องค์ประกอบ JWT

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

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

ช่องส่วนหัว JWT

ฟิลด์

คำอธิบาย

Alg

อัลกอริทึมที่จะใช้ "RS256"

typ

ประเภทของโทเค็น "JWT"

บุตรหลาน

รหัสคีย์ส่วนตัวของบัญชีบริการ คุณสามารถค้นหาค่านี้ใน ช่อง private_key_id ของไฟล์ JSON ของบัญชีบริการ สร้าง คุณต้องใช้คีย์จากบัญชีบริการที่มีระดับสิทธิ์ที่ถูกต้อง

ช่องการอ้างสิทธิ์ JWT

ฟิลด์

คำอธิบาย

คือ

อีเมลของบัญชีบริการ ซึ่งดูได้ใน ช่อง client_email ของไฟล์ JSON ของบัญชีบริการ

สำรอง

อีเมลของบัญชีบริการ ซึ่งดูได้ใน ช่อง client_email ของไฟล์ JSON ของบัญชีบริการ

Aud

SERVICE_NAME ของบัญชีบริการ ในกรณีนี้คือ https://fleetengine.googleapis.com/

iat

การประทับเวลาเมื่อสร้าง JWT ที่ระบุเป็นวินาที ผ่านไปแล้วตั้งแต่ 00:00:00 UTC, January 1, 1970 รอ 10 นาทีสำหรับการเอียง หากการประทับเวลาอยู่ในอดีตหรือในอนาคตมากเกินไป เซิร์ฟเวอร์อาจรายงานข้อผิดพลาด

exp

การประทับเวลาเมื่อ JWT หมดอายุ โดยระบุเป็นวินาทีที่ผ่านไป ตั้งแต่วันที่ 00:00:00 UTC, January 1, 1970 คำขอล้มเหลวหาก จะนานกว่า 1 ชั่วโมงในอนาคต

การให้สิทธิ์

อาจมี deliveryvehicleid ขึ้นอยู่กับกรณีการใช้งาน trackingid, taskid หรือ taskids

หากระบุรหัสงาน ขอบเขตการให้สิทธิ์จะต้องเป็นอาร์เรย์ใน ในรูปแบบต่อไปนี้

"taskids": ["task_id_one","task_id_two"]

หรือ

"taskids": ["*"]

การอ้างสิทธิ์ JWT ของ Fleet Engine

Fleet Engine ใช้การอ้างสิทธิ์ส่วนตัว การใช้การอ้างสิทธิ์ส่วนตัวจะทำให้มั่นใจว่า ลูกค้าที่ได้รับอนุญาตสามารถเข้าถึงข้อมูลของตนเอง

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

Fleet Engine ใช้การกล่าวอ้างส่วนตัวดังต่อไปนี้

การเดินทางแบบออนดีมานด์

  • vehicleid:
    • Driver SDK จะใช้คำกล่าวอ้างนี้เสมอ ไม่ว่าจะทำงานขณะเดินทาง หรือยานพาหนะ ระบบแบ็คเอนด์ของ Fleet Engine ทำให้มั่นใจได้ว่าพาหนะ ที่เชื่อมโยงกับการเดินทางที่ขอก่อนที่จะทำการแก้ไข
    • JWT ครอบคลุมทั้งรถยนต์และการเดินทาง การดำเนินงานต่างๆ แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้การลงนาม JWT ทำได้ง่ายขึ้น การใช้งานของคุณ
  • tripid:
    • Consumer SDK จะใช้คำกล่าวอ้างนี้เสมอ
    • JWT ครอบคลุมการปฏิบัติการทั้งเกี่ยวกับยานพาหนะและการเดินทาง แม้ว่าจะไม่จำเป็นก็ตาม ซึ่งอาจทำให้ การลงนามโทเค็นทำได้ง่ายขึ้น การใช้งานของคุณ

งานที่กำหนดเวลาไว้

  • deliveryvehicleid

    ใช้เมื่อเรียกใช้ API ของพาหนะการนำส่ง

  • taskid

    ใช้เมื่อเรียกใช้ API ต่องาน

  • taskids

    ใช้เมื่อโทร BatchCreateTasksAPI การอ้างสิทธิ์นี้ต้องอยู่ในรูปแบบอาร์เรย์ และอาร์เรย์ควรมีรหัสงานทั้งหมดที่จำเป็นต่อการดำเนินการ อีกครั้ง อย่าระบุ delivervehicleid การอ้างสิทธิ์ trackingid หรือ taskid รายการ

  • trackingid

    ใช้เมื่อเรียก GetTaskTrackingInfoAPI การอ้างสิทธิ์ต้องตรงกับการติดตาม รหัสในคำขอ อย่าระบุ delivervehicleid การอ้างสิทธิ์ taskid หรือ taskids รายการ

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