3단계: 채팅 토큰 생성
채팅 참가자가 채팅룸에 접속하여 메시지를 보내고 받기 시작하려면 채팅 토큰을 만들어야 합니다. 채팅 토큰은 채팅 클라이언트를 인증하고 권한을 부여하는 데 사용됩니다.
이 다이어그램은 IVS 채팅 토큰을 생성하기 위한 워크플로를 보여줍니다.
위에 표시된 것처럼 클라이언트 애플리케이션은 서버 측 애플리케이션에 토큰을 요청하고 서버 측 애플리케이션은 AWS SDK 또는 SigV4 서명 요청을 사용하여 CreateChatToken을 호출합니다. AWS 자격 증명은 API를 호출하는 데 사용되므로 토큰은 클라이언트 측 애플리케이션이 아닌 안전한 서버 측 애플리케이션에서 생성되어야 합니다.
토큰 생성을 보여주는 백엔드 서버 애플리케이션은 Amazon IVS 챗 데모 백엔드
세션 지속 시간은 설정된 세션이 자동으로 닫히기 전에 활성 상태를 유지할 수 있는 시간을 나타냅니다. 즉, 세션 지속 시간은 새 토큰이 생성되고 새 연결이 설정되기 전에 클라이언트가 채팅룸에 연결된 상태를 유지할 수 있는 기간입니다. 선택 사항으로, 토큰 생성 중 세션 기간을 지정할 수 있습니다.
각 토큰은 최종 사용자에 대한 연결을 설정하는 데 한 번만 사용할 수 있습니다. 연결이 닫히면 연결을 다시 설정하기 전에 새 토큰을 만들어야 합니다. 토큰 자체는 응답에 포함된 토큰 만료 타임스탬프까지 유효합니다.
최종 사용자가 채팅룸에 연결하려는 경우 클라이언트는 서버 애플리케이션에 토큰을 요청해야 합니다. 서버 애플리케이션은 토큰을 생성하여 클라이언트에 다시 전달합니다. 최종 사용자를 위해 필요에 따라 토큰을 만들어야 합니다.
채팅 인증 토큰을 만들려면 아래 지침을 따르세요. 채팅 토큰을 생성할 때 요청 필드를 사용하여 채팅 최종 사용자 및 최종 사용자의 메시징 기능에 대한 데이터를 전달합니다. 자세한 내용은 IVS Chat API Reference의 CreateChatToken을 참조하세요.
AWS SDK 지침
AWS SDK를 사용하여 채팅룸을 생성하는 방법은 고급 옵션이며, 먼저 애플리케이션에 SDK를 다운로드하고 구성해야 합니다. 다음은 JavaScript를 사용하는 AWS SDK에 대한 지침입니다.
중요: 이 코드는 서버 측에서 실행되어야 하며 해당 출력은 클라이언트에 전달되어야 합니다.
전제 조건: 아래 코드 샘플을 사용하려면 애플리케이션에 AWS JavaScript SDK를 로드해야 합니다. 자세한 내용은 JavaScript용 AWS SDK 시작하기를 참조하세요.
async function createChatToken(params) { const ivs = new AWS.Ivschat(); const result = await ivs.createChatToken(params).promise(); console.log("New token created", result.token); } /* Create a token with provided inputs. Values for user ID and display name are from your application and refer to the user connected to this chat session. */ const params = { "attributes": { "displayName": "DemoUser", }", "capabilities": ["SEND_MESSAGE"], "roomIdentifier": "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6", "userId": 11231234 }; createChatToken(params);
CLI 지침
AWS CLI를 사용하여 채팅 토큰을 생성하는 방법은 고급 옵션이며, 먼저 시스템에 CLI를 다운로드하고 구성해야 합니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서를 참조하세요. 참고: AWS CLI를 사용하여 토큰을 생성하는 것은 테스트 목적에 적합하지만, 프로덕션 용도의 경우 AWS SDK를 사용하여 서버 측에서 토큰을 생성하는 것이 좋습니다(위 지침 참조).
-
클라이언트의 방 식별자 및 사용자 ID와 함께
create-chat-token
명령을 실행합니다."SEND_MESSAGE"
,"DELETE_MESSAGE"
,"DISCONNECT_USER"
기능을 포함합니다. 필요에 따라 이 채팅 세션에 대한 세션 기간(분) 및/또는 사용자 지정 속성(메타데이터)을 포함합니다. 이러한 필드는 아래에 표시되지 않습니다.aws ivschat create-chat-token --room-identifier "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6" --user-id "11231234" --capabilities "SEND_MESSAGE"
-
그러면 클라이언트 토큰이 반환됩니다.
{ "token": "abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234.abcd12345EFGHI67890_jklmno123PQRS567890uvwxyz1234abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234abcde", "sessionExpirationTime": "2022-03-16T04:44:09+00:00", "tokenExpirationTime": "2022-03-16T03:45:09+00:00" }
-
이 토큰을 저장합니다. 이는 채팅룸에 연결하고 메시지를 전송하거나 수신하는 데 필요합니다. 해당 세션이 종료되기 전에 다른 채팅 토큰을 생성해야 합니다(
sessionExpirationTime
으로 표시됨).