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 |
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 |
Trường |
Nội dung mô tả |
---|---|
là |
Địa chỉ email của tài khoản dịch vụ của bạn, trong
Trường |
sub |
Địa chỉ email của tài khoản dịch vụ của bạn, trong
Trường |
aud |
|
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 |
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ừ |
khoản uỷ quyền |
Tuỳ thuộc vào trường hợp sử dụng, tệp có thể chứa |
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 bằng cách nào 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êmdelivervehicleid
,trackingid
hoặctaskid
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êmdelivervehicleid
,taskid
hoặctaskids
thông báo xác nhận quyền sở hữu.
Các bước tiếp theo
- Đọc về thiết kế bảo mật của Fleet Engine để nắm được quy trình xác thực.
- Tìm hiểu cách Phát hành mã thông báo web JSON từ máy chủ của bạn.