

# 步驟 3：建立聊天字符
<a name="getting-started-chat-auth"></a>

聊天參與者要連線至聊天室並開始傳送及接收訊息，必須先建立聊天字符。聊天字符的功用在於驗證及授權聊天用戶端。

此圖表說明建立 IVS 聊天字符的工作流程：

![\[為新建立的聊天室驗證和授權用戶端。\]](http://docs.aws.amazon.com/zh_tw/ivs/latest/ChatUserGuide/images/Chat_Getting_Started_Auth.png)


如上所示，用戶端應用程式會向您的伺服器端應用程式索取字符，伺服器端應用程式會使用 AWS 開發套件或 [Sigv4](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) 簽署的請求呼叫 CreateChatToken。由於我們使用 AWS 憑證呼叫 API，因此應在安全的伺服器端應用程式中產生字符，而不是在用戶端應用程式中產生。

可產生字符的試用版後端伺服器應用程式請到 [Amazon IVS 聊天功能後端試用版](https://github.com/aws-samples/amazon-ivs-chat-web-demo/tree/main/serverless)下載。

*工作階段持續時間*是指已建立的工作階段在自動關閉之前，維持作用中狀態的時間。即，工作階段持續時間是用戶端在必須產生新符記並建立新連線之前可以保持連線至聊天室的時間。建立字符的過程中，您可以選擇指定工作階段的持續時間。

每個字符只能為一名最終使用者建立連線一次。如果連線關閉，則必須建立新字符，才能重新建立連線。字符的有效期限以回應中的字符過期時間戳記為準。

最終使用者想連線至聊天室時，用戶端應向伺服器應用程式索取字符。伺服器應用程式會建立字符，並將字符傳遞回用戶端。最終使用者一旦提出需求，即應為其建立字符。

若要建立聊天驗證字符，請依以下指示操作。建立聊天字符時，請使用請求欄位傳遞聊天最終使用者和最終使用者傳訊功能的相關資料；如需詳細資訊，請參閱 *IVS 聊天功能 API 參考資料*中的 [CreateChatToken](https://docs.aws.amazon.com//ivs/latest/ChatAPIReference/API_CreateChatToken.html)。

## AWS SDK 說明
<a name="auth-sdk"></a>

若要使用 AWS 開發套件建立聊天字符，您必須先在應用程式上下載並設定開發套件。以下是使用 JavaScript 之 AWS SDK 的說明。

**重要：**此程式碼必須在伺服器端執行，再將其輸出傳遞給用戶端。

**必要條件**：若要使用以下程式碼範例，您需要將 AWS JavaScript SDK 載入應用程式中。如需詳細資訊，請參閱 [適用於 JavaScript 的 AWS SDK 入門](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started.html)。

```
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 說明
<a name="auth-cli"></a>

使用 AWS CLI 建立聊天符記是進階選項，需要您先在機器上下載並設定 CLI。如需詳細資訊，請參閱《[AWS 命令列介面使用者指南](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)》。注意：使用 AWS CLI 產生符記適合在測試時使用，但對於生產用途，我們建議您使用 AWS 開發套件在伺服器端產生符記 (請參閱上述說明)。

1. 執行 `create-chat-token` 命令並使用用戶端的聊天室識別符和使用者 ID。納入任何這些功能：`"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"
   ```

1. 這將傳回一個用戶端符記：

   ```
   {
     "token": "abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234.abcd12345EFGHI67890_jklmno123PQRS567890uvwxyz1234abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234abcde",
     "sessionExpirationTime": "2022-03-16T04:44:09+00:00",
     "tokenExpirationTime": "2022-03-16T03:45:09+00:00"
   }
   ```

1. 儲存此符記。您將需要它來連線至聊天室以及傳送或接收訊息。您需要在工作階段結束 (由 `sessionExpirationTime` 指示) 前產生另一個聊天符記。