Schritt 3: Erstellen eines Chat-Tokens
Damit ein Chat-Teilnehmer eine Verbindung zu einem Raum herstellen und Nachrichten senden und empfangen kann, muss ein Chat-Token erstellt werden. Chat-Token werden verwendet, um Chat-Clients zu authentifizieren und zu autorisieren.
Dieses Diagramm veranschaulicht den Arbeitsablauf für die Erstellung eines IVS-Chat-Tokens:
Wie oben gezeigt, fragt eine Client-Anwendung Ihre serverseitige Anwendung nach einem Token, und die serverseitige Anwendung ruft CreateChatToken mithilfe eines AWS-SDK oder signierter Sigv4-Anfragen auf. Da AWS-Anmeldeinformationen zum Aufrufen der API verwendet werden, sollte das Token in einer sicheren serverseitigen Anwendung generiert werden, nicht in der clientseitigen Anwendung.
Eine Backend-Serveranwendung, die die Token-Generierung demonstriert, ist im Amazon-IVS-Chat-Demo-Backend
Sitzungsdauer bezieht sich darauf, wie lange eine etablierte Sitzung aktiv bleiben kann, bevor sie automatisch beendet wird. Das heißt, die Sitzungsdauer entspricht der Zeit, die der Client mit dem Chatroom verbunden bleiben kann, bevor ein neues Token generiert und eine neue Verbindung hergestellt werden muss. Während der Token-Erstellung können Sie wahlweise die Sitzungsdauer angeben.
Jedes Token kann nur einmal zum Herstellen einer Verbindung für einen Endbenutzer verwendet werden. Wenn eine Verbindung geschlossen wird, muss ein neues Token erstellt werden, bevor eine Verbindung wiederhergestellt werden kann. Das Token selbst ist bis zu dem in der Antwort enthaltenen Zeitstempel für den Ablauf des Tokens gültig.
Wenn ein Endbenutzer eine Verbindung zu einem Chatroom herstellen möchte, sollte der Client die Serveranwendung nach einem Token fragen. Die Serveranwendung erstellt ein Token und gibt es an den Client zurück. Tokens sollten auf Anfrage für Endbenutzer erstellt werden.
Befolgen Sie die Anweisungen unten, um ein Chat-Authentifizierungstoken zu erstellen. Wenn Sie ein Chat-Token erstellen, verwenden Sie die Anforderungsfelder, um Daten über den Chat-Endbenutzer und die Messaging-Funktionen des Endbenutzers zu übergeben. Einzelheiten finden Sie unter CreateChatToken in der Referenz für IVS-Chat-API.
AWS-SDK-Anweisungen
Das Erstellen eines Chat-Tokens mit dem AWS SDK erfordert, dass Sie zuerst das SDK in Ihre Anwendung herunterladen und konfigurieren. Im Folgenden finden Sie Anweisungen für das AWS SDK, das JavaScript verwendet.
Wichtig: Dieser Code muss serverseitig ausgeführt und seine Ausgabe an den Client übergeben werden.
Voraussetzung: Um das folgende Codebeispiel verwenden zu können, müssen Sie das AWS JavaScript SDK in Ihre Anwendung laden. Weitere Informationen dazu finden Sie unter Erste Schritte mit AWS SDK for JavaScript.
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-Anweisungen
Das Erstellen eines Chat-Tokens mit der AWS CLI ist eine erweiterte Option und erfordert, dass Sie zuerst die CLI auf Ihrem Computer herunterladen und konfigurieren. Informationen zu den ersten Schritten finden Sie im Benutzerhandbuch für die AWS-Befehlszeilenschnittstelle. Hinweis: Das Generieren von Token mit der AWS CLI eignet sich für Testzwecke, aber für die Produktion empfehlen wir Ihnen, Token auf Serverseite mit dem AWS SDK zu generieren (siehe Anweisungen oben).
-
Führen Sie den
create-chat-token
-Befehl zusammen mit Raumkennung und Benutzer-ID für den Client aus. Fügen Sie eine der folgenden Funktionen ein:"SEND_MESSAGE"
,"DELETE_MESSAGE"
,"DISCONNECT_USER"
. (Fügen Sie optional die Sitzungsdauer (in Minuten) und/oder benutzerdefinierte Attribute (Metadaten) zu dieser Chat-Sitzung ein. Diese Felder werden unten nicht angezeigt.)aws ivschat create-chat-token --room-identifier "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6" --user-id "11231234" --capabilities "SEND_MESSAGE"
-
Dies gibt ein Client-Token zurück:
{ "token": "abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234.abcd12345EFGHI67890_jklmno123PQRS567890uvwxyz1234abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234abcde", "sessionExpirationTime": "2022-03-16T04:44:09+00:00", "tokenExpirationTime": "2022-03-16T03:45:09+00:00" }
-
Speichern Sie dieses Token. Sie benötigen es, um eine Verbindung mit dem Chatroom herzustellen und Nachrichten zu senden oder zu empfangen. Sie müssen ein weiteres Chat-Token generieren, bevor Ihre Sitzung endet (wie durch
sessionExpirationTime
angegeben).