Share via


Biblioteca cliente común de Azure Communication para JavaScript: versión 2.3.1

Este paquete contiene código común para las bibliotecas de Azure Communication Service.

Introducción

Requisitos previos

Instalación de

npm install @azure/communication-common

Compatibilidad con exploradores

Paquete de JavaScript

Para usar esta biblioteca cliente en el explorador, primero debe usar un agrupador. Para más información sobre cómo hacerlo, consulte nuestra documentación de agrupación.

Conceptos clave

CommunicationTokenCredential y AzureCommunicationTokenCredential

CommunicationTokenCredential es una interfaz que se usa para autenticar a un usuario con Communication Services, como chat o llamadas.

Ofrece AzureCommunicationTokenCredential una manera cómoda de crear una credencial que implemente dicha interfaz y le permite aprovechar la lógica de actualización automática integrada.

En función de su escenario, puede que desee inicializar con AzureCommunicationTokenCredential :

  • un token estático (adecuado para clientes de corta duración que se usan para, por ejemplo, enviar mensajes de chat de un solo uso) o
  • una función de devolución de llamada que garantiza un estado de autenticación continua durante las comunicaciones (por ejemplo, para sesiones de llamada largas).

Los tokens proporcionados a AzureCommunicationTokenCredential través del constructor o a través de la devolución de llamada del actualizador de tokens se pueden obtener mediante la biblioteca azure Communication Identity.

Ejemplos

Creación de una credencial con un token estático

En el caso de los clientes de corta duración, la actualización del token tras la expiración no es necesaria y AzureCommunicationTokenCredential se puede crear una instancia de con un token estático.

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

Creación de una credencial con una devolución de llamada

Aquí se supone que tenemos una función fetchTokenFromMyServerForUser que realiza una solicitud de red para recuperar una cadena de token JWT para un usuario. Lo pasamos a la credencial para capturar un token para Bob desde nuestro propio servidor. Nuestro servidor usaría la biblioteca azure Communication Identity para emitir tokens. Es necesario que la fetchTokenFromMyServerForUser función devuelva un token válido (con una fecha de expiración establecida en el futuro) en todo momento.

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

Creación de una credencial con actualización proactiva

Si se establece refreshProactively en true, se llamará a la tokenRefresher función cuando el token esté próximo a expirar.

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

Creación de una credencial con actualización proactiva y un token inicial

Pasar initialToken es una optimización opcional para omitir la primera llamada a tokenRefresher. Puede usarlo para separar el arranque de la aplicación de los ciclos de actualización de tokens posteriores.

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

Solución de problemas

  • Token no válido especificado: asegúrese de que el token que está pasando al AzureCommunicationTokenCredential constructor o a la tokenRefresher devolución de llamada es una cadena de token JWT completa. Por ejemplo, si usa la biblioteca de identidades de Azure Communication o la API REST para obtener el token, asegúrese de pasar solo la token parte del objeto de respuesta.

Pasos siguientes

Contribuciones

Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.

Impresiones