Share via


Biblioteca de cliente comum do Azure Communication para JavaScript – versão 2.3.1

Este pacote contém código comum para bibliotecas do Azure Communication Service.

Introdução

Pré-requisitos

Instalação

npm install @azure/communication-common

Browser support (Suporte do browser)

Pacote JavaScript

Para utilizar esta biblioteca de cliente no browser, primeiro tem de utilizar um bundler. Para obter detalhes sobre como fazê-lo, veja a nossa documentação de agrupamento.

Conceitos-chave

CommunicationTokenCredential e AzureCommunicationTokenCredential

É CommunicationTokenCredential uma interface utilizada para autenticar um utilizador com os Serviços de Comunicação, como Chat ou Chamadas.

O AzureCommunicationTokenCredential oferece uma forma conveniente de criar uma credencial que implementa a referida interface e permite-lhe tirar partido da lógica de atualização automática incorporada.

Consoante o seu cenário, poderá querer inicializar com AzureCommunicationTokenCredential :

  • um token estático (adequado para clientes de curta duração utilizados para, por exemplo, enviar mensagens de Chat únicas) ou
  • uma função de chamada de retorno que garante um estado de autenticação contínua durante as comunicações (ideal, por exemplo, para sessões de Chamadas longas).

Os tokens fornecidos ao AzureCommunicationTokenCredential através do construtor ou através da chamada de retorno do atualizador de tokens podem ser obtidos com a biblioteca do Azure Communication Identity.

Exemplos

Criar uma credencial com um token estático

Para clientes de curta duração, a atualização do token após a expiração não é necessária e o AzureCommunicationTokenCredential pode ser instanciado com um token estático.

const tokenCredential = new AzureCommunicationTokenCredential(
  "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjM2MDB9.adM-ddBZZlQ1WlN3pdPBOF5G4Wh9iZpxNP_fSvpF4cWs"
);

Criar uma credencial com uma chamada de retorno

Aqui, partimos do princípio de que temos uma função fetchTokenFromMyServerForUser que faz um pedido de rede para obter uma cadeia de token JWT para um utilizador. Transmitimo-lo para a credencial para obter um token para o Bob a partir do nosso próprio servidor. O nosso servidor utilizaria a biblioteca do Azure Communication Identity para emitir tokens. É necessário que a fetchTokenFromMyServerForUser função devolva sempre um token válido (com uma data de expiração definida no futuro).

const tokenCredential = new AzureCommunicationTokenCredential({
  tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
});

Criar uma credencial com atualização proativa

Definir refreshProactively como verdadeiro chamará a função tokenRefresher quando o token estiver perto da expiração.

const tokenCredential = new AzureCommunicationTokenCredential({
  tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
  refreshProactively: true,
});

Criar uma credencial com atualização proativa e um token inicial

A transmissão initialToken é uma otimização opcional para ignorar a primeira chamada para tokenRefresher. Pode utilizá-lo para separar o arranque da aplicação dos ciclos de atualização de tokens subsequentes.

const tokenCredential = new AzureCommunicationTokenCredential({
  tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
  refreshProactively: true,
  token:
    "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjM2MDB9.adM-ddBZZlQ1WlN3pdPBOF5G4Wh9iZpxNP_fSvpF4cWs",
});

Resolução de problemas

  • Token inválido especificado: certifique-se de que o token que está a transmitir para o AzureCommunicationTokenCredential construtor ou para a tokenRefresher chamada de retorno é uma cadeia de token JWT simples. Por exemplo, se estiver a utilizar a biblioteca do Azure Communication Identity ou a API REST para obter o token, confirme que está a transmitir apenas a token parte do objeto de resposta.

Passos seguintes

Contribuir

Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.

Impressões