JavaScript 認証ヘルパー
Amazon Location JavaScript 認証ヘルパーを使用すると、JavaScript アプリケーションから Amazon Location API を呼び出す際の認証がより簡単になります。この認証ヘルパーは、認証方法として Amazon Cognito または API キーを使用する場合に特に役立ちます。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
— この関数は、Amazon Cognito で動作するように初期化された AuthHelper オブジェクトを返す -
async withAPIKey( API_KEY: string): AuthHelper
— この関数は、API キーで動作するように初期化された AuthHelper オブジェクトを返します。
AuthHelper
オブジェクトは、以下の関数を備えています。
-
AuthHelper.getMapAuthenticationOptions()
— AuthHelper オブジェクトのこの関数は、MapLibre JS のマップオプションで使用できるtransformRequest
を備えたJavaScript オブジェクトを返します。アイデンティティプールで初期化された場合にのみ提供されます -
AuthHelper.getLocationClientConfig()
— AuthHelper オブジェクトのこの関数は、LocationClient を初期化できるcredentials
を備えた JavaScript オブジェクトを返します。 -
AuthHelper.getCredentials()
— AuthHelper オブジェクトのこの関数は、Amazon Cognito からの内部認証情報を返します。アイデンティティプールで初期化された場合にのみ提供されます
例:認証ヘルパーを使用して Amazon Cognito で MapLibre マップオブジェクトを初期化する
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 と AuthHelper を使用して、AWS SDK for JS から Location クライアントを初期化する
この例では、AWS SDK for 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 キーと AuthHelper を使用して、AWS SDK for JS から Location クライアントを初期化する
この例では、AWS SDK for 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 });