JavaScript 驗證協助程式 - Amazon Location Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

JavaScript 驗證協助程式

Amazon Location JavaScript 身分驗證協助程式可讓您更輕鬆地從 JavaScript 應用程式進行 Amazon Location API呼叫時進行身分驗證。此身分驗證協助工具特別協助您使用 Amazon CognitoAPI 金鑰作為身分驗證方法。這是開放原始碼程式庫,可在 上取得 GitHub,此處為:https://github.com/aws-geospatial/amazon-location-utilities-auth-helper-js

注意

驗證協助程式中的 Amazon Cognito 支援不支援 Amazon Cognito 的聯合身分功能。

安裝

如果您使用 webpack 之類的建置系統,或在您的 html 中包含具有<script>標籤的預先建置 JavaScript 套件,則可以搭配本機安裝使用程式庫。

  • 使用下列命令,使用 安裝程式庫NPM:

    npm install @aws/amazon-location-utilities-auth-helper
  • 在 HTML 檔案中使用以下命令載入指令碼:

    <script src="https://unpkg.com/@aws/amazon-location-utilities-auth-helper@1.x/dist/amazonLocationAuthHelper.js"></script>

Import (匯入)

若要在 JavaScript 應用程式中使用特定函數,您必須匯入該函數。下列程式碼用於將函數匯入withIdentityPoolId您的應用程式。

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper';

身分驗證函數

Amazon Location 身分驗證協助程式包含下列傳回AuthHelper物件的函數:

  • async withIdentityPoolId( identityPoolId: string): AuthHelper – 此函數會傳回物件 AuthHelper ,初始化為使用 Amazon Cognito

  • async withAPIKey( API_KEY: string): AuthHelper – 此函數會傳回物件 AuthHelper ,初始化為使用API金鑰。

AuthHelper 物件提供下列函數:

  • AuthHelper.getMapAuthenticationOptions() – AuthHelper 物件的此函數會傳回具有 的 JavaScript 物件transformRequest,可與 MapLibre JS 中的映射選項搭配使用。僅在使用身分集區初始化時提供。

  • AuthHelper.getLocationClientConfig() – AuthHelper 物件的此函數會傳回具有 的 JavaScript 物件credentials,可用於初始化 LocationClient。

  • AuthHelper.getCredentials() – AuthHelper 物件的此函數會從 Amazon Cognito 傳回內部憑證。僅在使用身分集區初始化時提供。

範例:使用 Amazon Cognito 初始化 MapLibre 地圖物件,使用 AuthHelper

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/mapName/style-descriptor', // Defines the appearance of the map ...authHelper.getMapAuthenticationOptions(), // Provides credential options required for requests to Amazon Location });

範例:使用 API金鑰初始化 MapLibre 映射物件 (AuthHelper在此情況下不需要 )

const map = new maplibregl.Map({ container: "map", // HTML element ID of map element center: [-123.1187, 49.2819], // initial map center point zoom: 16, // initial map zoom style: https://maps.geo.region.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=api-key-id', });

範例:使用 Amazon Cognito 從 AWS SDK適用於 JS 的 初始化位置用戶端,以及 AuthHelper

此範例用於 AWS SDK JavaScript v3。

import { withIdentityPoolId } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withIdentityPoolId("identity-pool-id"); // use Cognito pool id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the Cognito pool defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });

範例:使用 API金鑰和 從 JS AWS SDK 的 初始化位置用戶端 AuthHelper

此範例用於 AWS SDK JavaScript v3。

import { withAPIKey } from '@aws/amazon-location-utilities-auth-helper'; const authHelper = await withAPIKey("api-key-id"); // use API Key id for credentials //initialize the Location client: const client = new LocationClient({ region: "region", ...authHelper.getLocationClientConfig() // sets up the Location client to use the API Key defined above }); //call a search function with the location client: const result = await client.send(new SearchPlaceIndexForPositionCommand({ IndexName: "place-index", // Place index resource to use Position: [-123.1187, 49.2819], // position to search near MaxResults: 10 // number of results to return });