Mã thông báo web JSON

Mã thông báo web JSON (JWT) là một tiêu chuẩn web mở được dùng để xác thực và cho phép trao đổi thông tin giữa ứng dụng và máy chủ. Khi một ứng dụng người dùng trước tiên đăng nhập bằng thông tin xác thực vai trò thích hợp, thì máy chủ sẽ tạo và trả về JWT được mã hoá, có chữ ký số để sử dụng với các yêu cầu tiếp theo. Quá trình này vừa xác thực người dùng vừa cho phép người dùng truy cập vào các tuyến, dịch vụ và tài nguyên dựa trên vai trò trong tài khoản của họ.

Fleet Engine yêu cầu sử dụng Mã thông báo web JSON (JWT) được ký bởi tài khoản dịch vụ thích hợp cho các lệnh gọi phương thức API từ độ tin cậy thấp môi trường. Môi trường đáng tin cậy thấp bao gồm điện thoại thông minh và trình duyệt. JWT bắt nguồn từ máy chủ của bạn – một môi trường hoàn toàn đáng tin cậy. JWT được ký, mã hoá và chuyển đến máy khách để máy chủ cho đến khi hết hạn hoặc không còn hợp lệ.

Phần phụ trợ của bạn phải xác thực và uỷ quyền dựa trên Fleet Engine bằng cách sử dụng cơ chế Thông tin đăng nhập mặc định của ứng dụng tiêu chuẩn. Nhãn hiệu sử dụng JWT đã được ký bằng một tài khoản dịch vụ thích hợp. Đối với danh sách vai trò trong tài khoản dịch vụ, hãy xem các vai trò trong tài khoản dịch vụ Fleet Engine trong Fleet Engine cơ bản.

Không giống như khoá API, JWT tồn tại trong thời gian ngắn và chỉ hoạt động với những khoá vai trò được uỷ quyền để thực hiện. Để biết thêm thông tin về JWT, hãy xem phần Web JSON Mã thông báo trên Wikipedia. Để biết thông tin chi tiết về các vai trò truy cập, hãy xem phần Dịch vụ tài khoản trong hướng dẫn này.

Phần tử JWT

JWT chứa tiêu đề và phần xác nhận quyền sở hữu. Phần tiêu đề chứa chẳng hạn như khoá riêng tư thu được từ tài khoản dịch vụ và thuật toán mã hoá. Phần xác nhận quyền sở hữu chứa các thông tin như mã JWT tạo ra thời gian, thời gian sống, các dịch vụ mà JWT tuyên bố quyền truy cập và các thông tin uỷ quyền khác để xác định phạm vi truy cập; với ví dụ: mã xe giao hàng.

Bảng sau đây cung cấp thông tin mô tả chi tiết về các trường JWT nói chung, cũng như thông tin cụ thể về nơi bạn có thể tìm thấy giá trị cho trong dự án Fleet Engine Cloud.

Trường tiêu đề JWT

Trường

Nội dung mô tả

alg

Thuật toán cần sử dụng. "RS256".

tiêu chuẩn

Loại mã thông báo. "JWT".

trẻ em

Mã khoá riêng tư của tài khoản dịch vụ của bạn. Bạn có thể tìm thấy giá trị này trong Trường private_key_id của tệp JSON trong tài khoản dịch vụ. Nhãn hiệu hãy nhớ sử dụng khoá trong một tài khoản dịch vụ có cấp độ quyền phù hợp.

Trường thông báo xác nhận quyền sở hữu JWT

Trường

Nội dung mô tả

Địa chỉ email của tài khoản dịch vụ của bạn, trong Trường client_email của tệp JSON trong tài khoản dịch vụ.

sub

Địa chỉ email của tài khoản dịch vụ của bạn, trong Trường client_email của tệp JSON trong tài khoản dịch vụ.

aud

SERVICE_NAME của tài khoản dịch vụ của bạn, trong trường hợp này là https://fleetengine.googleapis.com/

kiến thức

Dấu thời gian khi JWT được tạo, được chỉ định bằng giây đã trôi qua kể từ 00:00:00 UTC, January 1, 1970. Chờ 10 phút để xiên. Nếu dấu thời gian là quá xa trong quá khứ hoặc trong tương lai, máy chủ có thể báo cáo lỗi.

thử nghiệm

Dấu thời gian khi JWT hết hạn, được chỉ định bằng giây đã trôi qua kể từ 00:00:00 UTC, January 1, 1970. Yêu cầu không thành công nếu ít nhất một giờ trong tương lai.

khoản uỷ quyền

Tuỳ thuộc vào trường hợp sử dụng, tệp có thể chứa deliveryvehicleid, trackingid, taskid hoặc taskids.

Thông báo xác nhận quyền sở hữu JWT của Fleet Engine

Fleet Engine sử dụng các xác nhận quyền sở hữu riêng tư. Việc sử dụng thông báo xác nhận quyền sở hữu riêng tư giúp đảm bảo rằng chỉ khách hàng được uỷ quyền có thể truy cập vào dữ liệu của riêng họ.

Ví dụ: khi máy chủ của bạn cấp Mã thông báo web JSON cho thiết bị di động của người lái xe thiết bị nào thì tệp đó phải chứa xác nhận quyền sở hữu vehicleid hoặc deliveryvehicleid xác nhận quyền sở hữu với giá trị mã xe của người lái xe đó. Sau đó: tuỳ thuộc vào vai trò của người lái xe, JWT chỉ cấp quyền truy cập cho xe cụ thể Mã nhận dạng chứ không phải bất kỳ mã xe tuỳ ý nào khác.

Fleet Engine sử dụng các tuyên bố riêng tư sau đây:

Chuyến đi theo yêu cầu

  • vehicleid:
    • SDK tài xế luôn sử dụng thông báo xác nhận quyền sở hữu này, cho dù bạn đang di chuyển khi di chuyển hoặc chiếc xe. Phần phụ trợ của Fleet Engine giúp đảm bảo rằng chiếc xe liên kết với chuyến đi đã yêu cầu trước khi sửa đổi.
    • Là một nhà cung cấp dịch vụ, bạn sử dụng yêu cầu này với "*" để khớp với tất cả phương tiện di chuyển. Xin lưu ý rằng JWT có thể áp dụng cho cả phương tiện di chuyển và chuyến đi các thao tác khác, ngay cả khi không bắt buộc, giúp đơn giản hoá quá trình ký JWT trong quá trình triển khai.
  • tripid:
    • SDK người tiêu dùng luôn sử dụng thông báo xác nhận quyền sở hữu này.
    • Là một nhà cung cấp dịch vụ, bạn sử dụng yêu cầu này với "*" để khớp với tất cả các chuyến đi của bạn. Lưu ý rằng JWT có thể bao gồm cả hoạt động của xe cộ và chuyến đi, ngay cả khi không bắt buộc, việc này có thể giúp đơn giản hoá quá trình ký mã thông báo trong quá trình triển khai.

Việc cần làm đã lên lịch

  • deliveryvehicleid

    Dùng khi gọi mỗi xe giao hàng API.

  • taskid

    Dùng khi gọi API cho mỗi tác vụ.

  • taskids

    Sử dụng khi gọi điện BatchCreateTasksAPI. Khiếu nại này phải ở dạng mảng, và mảng phải chứa tất cả mã công việc cần thiết để hoàn tất của bạn. Đừng thêm delivervehicleid, trackingid hoặc taskid thông báo xác nhận quyền sở hữu.

  • trackingid

    Sử dụng khi gọi hàm GetTaskTrackingInfoAPI. Thông báo xác nhận quyền sở hữu phải khớp với thông tin theo dõi Mã nhận dạng trong yêu cầu. Đừng thêm delivervehicleid, taskid hoặc taskids thông báo xác nhận quyền sở hữu.

Các bước tiếp theo