JavaScript 인증 도우미 - Amazon Location Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

JavaScript 인증 도우미

Amazon Location JavaScript 인증 도우미를 사용하면 JavaScript 애플리케이션에서 Amazon LocationAPI을 호출할 때 인증이 더 간단해집니다. 이 인증 도우미는 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>

가져오기

JavaScript 애플리케이션에서 특정 함수를 사용하려면 해당 함수를 가져와야 합니다. 다음 코드는 기능 withIdentityPoolId을 애플리케이션으로 가져오는 데 사용됩니다.

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

인증 기능

Amazon 위치 인증 도우미에는 AuthHelper 객체를 반환하는 다음 기능이 포함됩니다.

  • async withIdentityPoolId( identityPoolId: string): AuthHelper - 이 함수는 AuthHelper Amazon Cognito에서 작동하도록 초기화된 객체를 반환합니다.

  • async withAPIKey( API_KEY: string): AuthHelper - 이 함수는 AuthHelper API 키로 작동하도록 초기화된 객체를 반환합니다.

AuthHelper 겍체는 다음과 같은 기능을 제공합니다.

  • AuthHelper.getMapAuthenticationOptions() - AuthHelper 객체의 이 함수는 MapLibre JS의 맵 옵션과 함께 사용할 수 transformRequest 있는 가 있는 JavaScript 객체를 반환합니다. 자격 증명 풀로 초기화한 경우에만 제공됩니다.

  • AuthHelper.getLocationClientConfig() - AuthHelper 객체의 이 함수는 를 초기화하는 데 사용할 수 credentials 있는 JavaScript 객체를 와 함께 반환합니다 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 및 를 사용하여 JS AWS SDK용 에서 Location 클라이언트 초기화 AuthHelper

이 예제에서는 JavaScript v3에 를 사용합니다 AWS SDK.

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용 에서 Location 클라이언트 초기화 및 AuthHelper

이 예제에서는 JavaScript v3에 를 사용합니다 AWS SDK.

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 });