JavaScript Tüketici SDK'sı ile tüketici uygulamanız, Fleet Engine'de izlenen araçların ve ilgilenilen diğer konumların konumlarını web tabanlı bir harita üzerinde gösterebilir. Bu sayede tüketicileriniz, sürücünün yolculuğundaki ilerlemeyi görebilir. Bu kılavuzda, Fleet Engine'i ilişkili Google Cloud projesi ve API anahtarlarıyla kurduğunuz varsayılmaktadır. Ayrıntılar için Fleet Engine'e bakın.
JavaScript Tüketici SDK'sını aşağıdaki adımları uygulayarak kurarsınız:
Maps JavaScript API'yi etkinleştirme
Google Cloud Console'da Maps JavaScript API'yi etkinleştirin. Daha fazla bilgi için Google Cloud belgelerindeki API'leri etkinleştirme bölümüne bakın. Bu, JavaScript için Tüketici SDK'sını etkinleştirir.
Yetkilendirme kurulumu
Fleet Engine, düşük güven düzeyine sahip ortamlardan gelen API yöntemi çağrıları için uygun bir hizmet hesabı tarafından imzalanmış JSON Web Jetonlarının (JWT) kullanılmasını gerektirir. Akıllı telefonlar ve tarayıcılar, güven düzeyinin düşük olduğu ortamlara dahildir. JWT, tamamen güvenilir bir ortam olan sunucunuzda bir JWT kaynaklıdır. JWT imzalanır, şifrelenir ve geçerliliği sona erene kadar veya geçerliliğini yitirene kadar sonraki sunucu etkileşimleri için istemciye iletilir.
Arka uçunuz, standart Uygulama Varsayılan Kimlik Bilgileri mekanizmalarını kullanarak Fleet Engine'da kimlik doğrulaması ve yetkilendirme yapmalıdır. Uygun bir hizmet hesabı tarafından imzalanmış JWT'leri kullandığınızdan emin olun. Hizmet hesabı rollerinin listesi için Fleet Engine'in Temel Özellikleri başlıklı makalenin Fleet Engine hizmet hesabı rolleri bölümüne bakın.
Buna karşılık, arka uçunuz standart uygulama varsayılan kimlik bilgileri mekanizmalarını kullanarak Fleet Engine'e karşı kimlik doğrulaması ve yetkilendirme yapmalıdır.
Yetkilendirme nasıl çalışır?
Fleet Engine verileriyle yetkilendirme hem sunucu tarafında hem de istemci tarafında uygulamayı kapsar.
Sunucu tarafı yetkilendirme
Web tabanlı uygulamanızda kimlik doğrulama ve yetkilendirme ayarlarını yapmadan önce, arka uç sunucunuzun Fleet Engine'e erişmek için web tabanlı uygulamanıza JSON Web Jetonları gönderebilmesi gerekir. Web tabanlı uygulamanız, bu JWT'leri istekleriyle birlikte gönderir. Böylece Fleet Engine, istekleri kimliği doğrulanmış ve istekteki verilere erişme yetkisine sahip olarak tanır. Sunucu tarafı JWT uygulamasıyla ilgili talimatlar için Fleet Engine Essentials'ın altındaki JSON Web Jetonları Düzenleme bölümüne bakın.
Gezinin ilerleme durumunu paylaşmak için JavaScript Tüketici SDK'sı için özellikle aşağıdakileri göz önünde bulundurun:- JSON Web Jetonları vermeyle ilgili genel yönergeler
- İsteğe bağlı geziler JWT yönergeleri
- Bir tüketici işlemi için örnek jeton
İstemci tarafı yetkilendirme
JavaScript Tüketici SDK'sını kullandığınızda, yetkilendirme jetonu alıcısını kullanarak sunucudan bir jeton ister. Bunu aşağıdakilerden herhangi biri geçerli olduğunda yapar:
Geçerli bir jeton yok (ör. SDK yeni bir sayfa yüklendiğinde getirme aracını çağırmadıysa veya getirme aracı bir jetonla dönmediyse).
Jetonun süresi doldu.
Jetonun süresinin dolmasından itibaren bir dakika içinde olması gerekir.
Aksi takdirde, JavaScript Tüketici SDK'sı daha önce verilen geçerli jetonu kullanır ve alıcıyı çağırmaz.
Yetkilendirme jetonu getirme aracısı oluşturma
Yetkilendirme jetonu alıcınızı aşağıdaki yönergeleri kullanarak oluşturun:
Alıcının, iki alan içeren bir veri yapısı döndürmesi gerekir. Bu yapı, aşağıdaki gibi bir
Promise
içine sarılmalıdır:token
dizesi.expiresInSeconds
sayısı. Jetonun geçerlilik süresi, getirildikten sonra bu süre içinde sona erer. Kimlik doğrulama jetonu getirme aracı, örnekte gösterildiği gibi kitaplığa getirme zamanından itibaren geçerlilik bitiş süresini saniye cinsinden iletmelidir.
Alıcının, jeton almak için sunucunuzdaki bir URL'yi çağırması gerekir. Bu URL (
SERVER_TOKEN_URL
), arka uç uygulamanıza bağlıdır. Aşağıdaki örnek URL, GitHub'daki örnek uygulama arka ucu içindir:https://SERVER_URL/token/consumer/TRIPID
Örnek -- Kimlik doğrulama jetonu alıcısı oluşturma
Aşağıdaki örneklerde, yetkilendirme jetonu getirme aracının nasıl oluşturulacağı gösterilmektedir:
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,
};
}