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