JavaScript 소비자 SDK를 사용하면 소비자 앱이 웹 기반 지도에 Fleet Engine에서 추적하는 차량 위치 및 기타 관심 장소를 표시할 수 있습니다. 이를 통해 일반 사용자는 배송 진행 상황을 확인할 수 있습니다. 이 가이드에서는 Fleet Engine을 연결된 Google Cloud 프로젝트 및 API 키로 설정했다고 가정합니다. 자세한 내용은 Fleet 엔진을 참고하세요.
다음 단계에 따라 JavaScript 소비자 SDK를 설정합니다.
Maps JavaScript API 사용 설정
사용하는 Google Cloud 콘솔 프로젝트에서 Maps JavaScript API 사용 설정 사용할 수 있습니다 자세한 내용은 API 사용 설정을 Maps JavaScript API 문서를 참조하세요.
승인 설정하기
신뢰 수준이 낮은 환경의 API 메서드 호출의 경우 Fleet Engine은 적절한 서비스 계정으로 서명된 JSON 웹 토큰(JWT)을 사용해야 합니다. 신뢰도가 낮은 환경에는 스마트폰과 브라우저가 포함됩니다. JWT는 완전히 신뢰할 수 있는 환경인 서버에서 시작됩니다. JWT 서명되고 암호화되어 후속 서버를 위해 클라이언트에 전달됩니다. 만료되거나 더 이상 유효하지 않을 때까지 상호작용하지 않습니다.
백엔드는 표준 애플리케이션 기본 사용자 인증 정보 메커니즘을 사용하여 Fleet Engine에 대해 인증하고 승인해야 합니다. 적절한 서비스 계정으로 서명된 JWT를 사용해야 합니다. 서비스 계정 역할 목록은 Fleet Engine 기본사항의 Fleet Engine 서비스 계정 역할을 참고하세요.
소비자 앱은 다음을 통해 최종 사용자를 인증해야 합니다. Google Cloud 프로젝트의delivery_consumer
역할만 반환
있습니다. 이렇게 하면 Fleet Engine이 응답에서 다른 모든 정보를 필터링하고 삭제합니다. 예를 들어, 비가용성 작업 도중에
위치 정보는 최종 사용자와 공유되지 않습니다. 서비스 계정 참조
역할을 할당할 수 있습니다.
반면 백엔드는 표준 애플리케이션 기본 사용자 인증 정보 메커니즘을 사용하여 Fleet Engine에 대해 인증하고 승인해야 합니다.
승인은 어떻게 작동하나요?
Fleet Engine 데이터를 사용한 승인에는 서버 측과 클라이언트 측이 모두 포함됩니다. 있습니다.
서버 측 승인
웹 기반 서버에서 인증 및 승인을 설정하기 전에 백엔드 서버는 JSON 웹 토큰을 사용자 계정에 발급할 수 있어야 Fleet Engine에 액세스하기 위한 웹 기반 애플리케이션입니다. 웹 기반 애플리케이션 이러한 JWT를 요청과 함께 전송하므로 Fleet Engine에서 요청을 인증 및 승인을 거친 사용자 인증 정보로 요청을 수행합니다. 서버 측 JWT 구현에 관한 안내는 플릿 엔진 기본사항의 JSON 웹 토큰 발급을 참고하세요.
특히 배송 추적을 위한 JavaScript 소비자 SDK의 경우 다음 사항에 유의하세요.- JSON 웹 토큰 발급을 위한 일반 가이드라인
- 예약된 태스크 JWT 가이드라인
- 소비자 앱의 토큰 예
클라이언트 측 승인
JavaScript 소비자 SDK를 사용하는 경우 SDK는 승인 토큰 가져오기 프로그램입니다. 다음 중 하나에 해당할 때 이 작업을 실행합니다.
유효한 토큰이 없습니다(예: SDK가 새 페이지 로드 시 가져오기를 호출하지 않았거나 가져오기가 토큰을 반환하지 않은 경우).
토큰이 만료되었습니다.
토큰은 만료 후 1분 이내에 만료됩니다.
그렇지 않으면 JavaScript 소비자 SDK는 이전에 발급된 유효한 토큰을 사용하고 가져오기를 호출하지 않습니다.
승인 토큰 가져오기 만들기
다음 가이드라인에 따라 승인 토큰 가져오기 프로그램을 만듭니다.
페처는 필드가 두 개 있는 데이터 구조를 반환해야 하며
Promise
:문자열
token
.숫자
expiresInSeconds
입니다. 토큰은 이 시간 내에 만료됩니다. 가져올 수 있습니다. 인증 토큰 가져오기 프로그램은 만료를 통과해야 합니다. 가져온 시간부터 라이브러리로 가져오는 초 단위의 시간입니다 예로 들 수 있습니다
가져오기 도구는 서버의 URL을 호출하여 토큰을 가져와야 합니다. 이 URL(
SERVER_TOKEN_URL
)은 백엔드 구현에 따라 다릅니다. 다음 URL 예시는 GitHub의 샘플 앱 백엔드의 URL입니다.https://SERVER_URL/token/delivery_consumer/TRACKING_ID
예 - 인증 토큰 가져오기 도구 만들기
다음 예는 승인 토큰 가져오기를 만드는 방법을 보여줍니다.
자바스크립트
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,
};
}