Với SDK Người dùng JavaScript, ứng dụng dành cho người dùng của bạn có thể hiển thị vị trí của xe và các vị trí quan tâm khác được theo dõi trong Công cụ quản lý đội xe trên bản đồ dựa trên web. Nhờ đó, người tiêu dùng có thể thấy được tiến trình trong hành trình của người lái xe. Hướng dẫn này giả định rằng bạn đã thiết lập Fleet Engine với dự án Google Cloud và khoá API liên kết. Hãy xem Công cụ của đội xe để biết thông tin chi tiết.
Bạn thiết lập SDK Người dùng JavaScript theo các bước sau:
Bật Maps JavaScript API
Bật API Maps JavaScript trong Google Cloud Console. Để biết thêm thông tin chi tiết, hãy xem phần Bật API trong tài liệu về Google Cloud. Điều này cho phép SDK người tiêu dùng cho JavaScript.
Thiết lập yêu cầu uỷ quyền
Đối với các lệnh gọi phương thức API từ môi trường có mức độ tin cậy thấp, Công cụ của đội xe yêu cầu sử dụng Mã thông báo web JSON (JWT) do một tài khoản dịch vụ thích hợp ký. Môi trường có mức độ 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.
Ngược lại, phần phụ trợ của bạn phải xác thực và uỷ quyền đối với Công cụ của đội xe bằng cách sử dụng các cơ chế Thông tin xác thực mặc định của ứng dụng tiêu chuẩn.
Việc uỷ quyền hoạt động như thế nào?
Hoạt động uỷ quyền bằng dữ liệu Fleet Engine liên quan đến cả phía máy chủ và phía máy khách trong quá trình triển khai.
Uỷ quyền phía máy chủ
Trước khi bạn thiết lập tính năng xác thực và uỷ quyền trong ứng dụng web thì máy chủ phụ trợ của bạn phải có thể cấp Mã thông báo web JSON cho ứng dụng dựa trên nền tảng web để truy cập vào Fleet Engine. Ứng dụng dựa trên nền tảng web gửi các JWT này cùng với các yêu cầu của mình để Fleet Engine nhận dạng các yêu cầu là được xác thực và uỷ quyền để truy cập vào dữ liệu trong yêu cầu. Để biết hướng dẫn về cách triển khai JWT phía máy chủ, hãy xem phần Phát hành mã thông báo web JSON trong phần Kiến thức cơ bản về công cụ của Fleet.
Cụ thể, hãy lưu ý những điều sau đối với JavaScript Consumer SDK đối với chia sẻ tiến trình chuyến đi:- Nguyên tắc chung để phát hành mã thông báo web JSON
- Nguyên tắc về JWT cho chuyến đi theo yêu cầu
- Mã thông báo mẫu cho thao tác của người dùng
Uỷ quyền phía máy khách
Khi bạn sử dụng SDK Người dùng JavaScript, SDK này sẽ yêu cầu mã thông báo từ máy chủ bằng trình tìm nạp mã thông báo uỷ quyền. Lệnh này thực hiện việc này khi bất kỳ trường hợp nào sau đây xảy ra:
Không có mã thông báo hợp lệ nào, chẳng hạn như khi SDK chưa gọi trình tìm nạp trên tải trang mới hoặc khi trình tìm nạp chưa trả về kèm theo mã thông báo.
Mã thông báo đã hết hạn.
Mã thông báo sẽ hết hạn trong vòng một phút.
Nếu không, JavaScript Consumer SDK sẽ sử dụng mã thông báo hợp lệ được phát hành trước đó và không gọi trình tìm nạp.
Tạo trình tìm nạp mã thông báo uỷ quyền
Tạo trình tìm nạp mã thông báo uỷ quyền theo các nguyên tắc sau:
Trình tìm nạp phải trả về một cấu trúc dữ liệu có hai trường, được gói trong một
Promise
như sau:Chuỗi
token
.Một số
expiresInSeconds
. Mã thông báo sẽ hết hạn trong khoảng thời gian này sau khi tìm nạp. Trình tìm nạp mã xác thực phải vượt qua ngày hết hạn thời gian tính bằng giây, kể từ thời điểm tìm nạp đến thư viện như được hiển thị trong ví dụ.
Trình tìm nạp phải gọi một URL trên máy chủ của bạn để truy xuất mã thông báo. Chiến dịch này URL (
SERVER_TOKEN_URL
) phụ thuộc vào cách triển khai chương trình phụ trợ của bạn. Chiến lược phát hành đĩa đơn URL ví dụ sau đây dành cho phần phụ trợ ứng dụng mẫu trên GitHub:https://SERVER_URL/token/consumer/TRIPID
Ví dụ -- Tạo trình tìm nạp mã thông báo xác thực
Các ví dụ sau đây cho thấy cách tạo trình tìm nạp mã thông báo uỷ quyền:
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,
};
}