Biblioteca de cliente Comum de Comunicação do Azure para JavaScript – versão 2.3.1

Esse pacote contém código comum para bibliotecas do Serviço de Comunicação do Azure.

Introdução

Pré-requisitos

Instalando o

npm install @azure/communication-common

Suporte ao navegador

Pacote JavaScript

Para usar essa biblioteca de clientes no navegador, primeiro você precisa usar um empacotador. Para obter detalhes sobre como fazer isso, consulte nossa documentação de agrupamento.

Principais conceitos

CommunicationTokenCredential e AzureCommunicationTokenCredential

O CommunicationTokenCredential é uma interface usada para autenticar um usuário com os Serviços de Comunicação, como Chat ou Chamada.

O AzureCommunicationTokenCredential oferece uma maneira conveniente de criar uma credencial implementando a determinada interface e permite que você aproveite a lógica interna de atualização automática.

Dependendo do cenário, talvez você queira inicializar o AzureCommunicationTokenCredential com:

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

Os tokens fornecidos para o AzureCommunicationTokenCredential por meio do construtor ou por meio do retorno de chamada do atualizador de token podem ser obtidos usando a biblioteca de Identidade de Comunicação do Azure.

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 um retorno de chamada

Aqui, assumimos que temos uma função fetchTokenFromMyServerForUser que faz uma solicitação de rede para recuperar uma cadeia de caracteres de token JWT para um usuário. Passamos para a credencial para buscar um token para Bob do nosso próprio servidor. Nosso servidor usaria a biblioteca de Identidade de Comunicação do Azure para emitir tokens. É necessário que a fetchTokenFromMyServerForUser função retorne um token válido (com uma data de validade definida no futuro) em todos os momentos.

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

Criar uma credencial com atualização proativa

A configuração refreshProactively como true chamará sua tokenRefresher função quando o token estiver próximo 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

Passar initialToken é uma otimização opcional para ignorar a primeira chamada para tokenRefresher. Você pode usar isso para separar a inicialização do aplicativo dos ciclos de atualização de token subsequentes.

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

Solução de problemas

  • Token inválido especificado: verifique se o token que você está passando para o AzureCommunicationTokenCredential construtor ou para o tokenRefresher retorno de chamada é uma cadeia de caracteres de token JWT nua. Por exemplo, se você estiver usando a biblioteca de Identidade de Comunicação do Azure ou a API REST para obter o token, verifique se está passando apenas a token parte do objeto de resposta.

Próximas etapas

Contribuição

Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber como criar e testar o código.

Impressões