Etapa 3: criar uma token de chat
Para que um participante do chat se conecte a uma sala e comece a enviar e receber mensagens, um token de chat deve ser criado. Os tokens de chat são usados para autenticar e autorizar clientes de chat.
Este diagrama ilustra o fluxo de trabalho para a criação de um token de chat do IVS:
Conforme mostrado acima, um aplicativo cliente solicita um token ao aplicativo do lado do servidor, e o aplicativo do lado do servidor chama CreateChatToken usando um SDK da AWS ou solicitações assinadas pelo SIGv4. Como as credenciais da AWS são usadas para chamar a API, o token deve ser gerado em um aplicativo seguro do lado do servidor, não no aplicativo do lado do cliente.
Uma aplicação de servidor de backend que demonstra a geração de tokens está disponível em Demonstração de backend do Amazon IVS Chat
A duração da sessão informa por quanto tempo uma sessão estabelecida pode permanecer ativa antes de ser encerrada automaticamente. Ou seja, a duração da sessão significa por quanto tempo o cliente pode permanecer conectado à sala de chat antes que um novo token seja gerado e seja necessário estabelecer uma nova conexão. Durante a criação do token, também é possível especificar a duração da sessão.
Cada token pode ser usado para estabelecer uma conexão somente uma vez. Se a conexão for encerrada, será necessário criar um novo token para que a conexão possa ser restabelecida. O token em si é válido até o timestamp de expiração do token incluído na resposta.
Quando um usuário final quiser se conectar a uma sala de chat, o cliente deve solicitar um token ao aplicativo do servidor. O aplicativo do servidor cria um token e o repassa para o cliente. Os tokens devem ser criados para usuários finais sob demanda.
Para criar um token de autenticação de dados, siga as instruções abaixo. Ao criar um token de chat, use os campos de solicitação para transmitir dados sobre o usuário final do chat e as funcionalidades de mensagens do usuário final. Para obter mais detalhes, consulte CreateChatToken na Referência de API do Chat do IVS.
Instruções do AWS SDK
Criar um token de chat com o AWS SDK exige que você baixe e configure o SDK no aplicativo primeiro. As instruções para o AWS SDK usando JavaScript são descritas a seguir.
Importante: esse código deve ser executado no lado do servidor e sua saída transferida para o cliente.
Pré-requisito: para usar o exemplo de código abaixo, você precisa carregar o AWS JavaScript SDK em sua aplicação. Para obter mais detalhes, consulte .Conceitos básicos do 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);
Instruções da CLI
A criação de um token de chat com a AWS CLI é uma opção avançada e exige que você baixe e configure a CLI em sua máquina primeiro. Para obter mais detalhes, consulte o Guia do usuário da Interface de Linhas de Comando da AWS. Observação: gerar tokens com a AWS CLI é bom para fins de teste, mas para uso em produção, recomendamos gerar tokens no lado do servidor com o AWS SDK (consulte as instruções acima).
-
Execute o comando
create-chat-token
junto com o identificador da sala e o ID do usuário para o cliente. Inclua qualquer um destes recursos:"SEND_MESSAGE"
,"DELETE_MESSAGE"
,"DISCONNECT_USER"
. (Opcionalmente, inclua a duração da sessão (em minutos) ou atributos personalizados (metadados) sobre a sessão de chat. Esses campos não são exibidos abaixo.)aws ivschat create-chat-token --room-identifier "arn:aws:ivschat:us-west-2:123456789012:room/g1H2I3j4k5L6" --user-id "11231234" --capabilities "SEND_MESSAGE"
-
Isso retorna um token de cliente:
{ "token": "abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234.abcd12345EFGHI67890_jklmno123PQRS567890uvwxyz1234abcde12345FGHIJ67890_klmno1234PQRS567890uvwxyz1234abcde", "sessionExpirationTime": "2022-03-16T04:44:09+00:00", "tokenExpirationTime": "2022-03-16T03:45:09+00:00" }
-
Salve esse token. Você precisará dele para se conectar à sala de chat e enviar ou receber mensagens. Será necessário gerar outro token de chat antes que sua sessão termine (conforme indicado por
sessionExpirationTime
).