你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 JavaScript 的 Azure 通信通用客户端库 - 版本 2.3.1

此包包含 Azure 通信服务库的通用代码。

入门

先决条件

安装

npm install @azure/communication-common

浏览器支持

JavaScript 捆绑包

若要在浏览器中使用此客户端库,首先需要使用捆绑程序。 有关如何执行此操作的详细信息,请参阅捆绑 文档

关键概念

CommunicationTokenCredential 和 AzureCommunicationTokenCredential

CommunicationTokenCredential是用于使用通信服务(如聊天或通话)对用户进行身份验证的接口。

提供了 AzureCommunicationTokenCredential 一种便捷的方式来创建实现所述接口的凭据,并允许你利用内置的自动刷新逻辑。

根据你的方案,可能需要使用以下项初始化 AzureCommunicationTokenCredential

  • 静态令牌 (适用于生存期较短的客户端,例如) 发送一次性聊天消息或
  • 一个回调函数,可确保通信期间持续身份验证状态 (理想状态,例如,对于长时间的呼叫会话) 。

可以使用 Azure 通信标识库获取通过构造函数或令牌刷新器回调提供给 AzureCommunicationTokenCredential 的令牌。

示例

使用静态令牌创建凭据

对于生存期较短的客户端,不需要在过期时刷新令牌, AzureCommunicationTokenCredential 可以使用静态令牌实例化 。

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

使用回调创建凭据

此处,我们假设有一个函数,该函数 fetchTokenFromMyServerForUser 发出网络请求来检索用户的 JWT 令牌字符串。 我们将它传递到凭据中,以便从我们自己的服务器中为 Bob 提取令牌。 我们的服务器将使用 Azure 通信标识库颁发令牌。 函数必须 fetchTokenFromMyServerForUser 返回一个有效的令牌 (,并在将来) 一直设置到期日期。

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

创建具有主动刷新的凭据

将 设置为 refreshProactively true 将在令牌即将过期时调用 tokenRefresher 函数。

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

创建具有主动刷新和初始令牌的凭据

initialToken传递是一种可选的优化,用于跳过对 的第一次调用tokenRefresher。 可以使用此功能将启动与应用程序的后续令牌刷新周期分开。

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

故障排除

  • 指定的令牌无效:请确保传递给 AzureCommunicationTokenCredential 构造函数或回调的 tokenRefresher 令牌是一个裸露的 JWT 令牌字符串。 例如,如果使用 Azure 通信标识库REST API 获取令牌,请确保仅传递响应对象的部分 token

后续步骤

贡献

若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。

曝光数