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

适用于 JavaScript 的 Azure 通信标识客户端库 - 版本 1.3.1

标识库用于管理Azure 通信服务的用户和令牌。

入门

先决条件

安装

npm install @azure/communication-identity

浏览器支持

JavaScript 捆绑包

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

关键概念

客户端

CommunicationIdentityClient提供用于管理用户及其令牌的方法。

示例

身份验证

可以从 Azure 门户中的通信服务资源获取密钥和/或连接字符串。 获得密钥后,可以使用以下任一方法对 进行身份验证 CommunicationIdentityClient

在初始化客户端之前使用 AzureKeyCredential 创建KeyCredential

import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(ENDPOINT, credential);

使用连接字符串

import { CommunicationIdentityClient } from "@azure/communication-identity";

const connectionString = `endpoint=ENDPOINT;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);

使用 TokenCredential

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(ENDPOINT, credential);

如果使用密钥初始化客户端,则还需要提供相应的终结点。 可以从 Azure 门户中的通信服务资源获取此终结点。

使用情况

创建 CommunicationIdentityClient 的实例

import { CommunicationIdentityClient } from "@azure/communication-identity";

const client = new CommunicationIdentityClient(CONNECTION_STRING);

创建新用户

createUser使用 方法创建新用户。

const user = await client.createUser();

创建和刷新用户令牌

getToken使用 方法为现有用户颁发或刷新令牌。 方法还采用通信令牌范围列表。 作用域选项包括:

  • chat (使用此用于完全访问聊天 API)
  • voip (使用此方法来完全访问调用 API)
  • chat.join (访问聊天 API,但未授权创建、删除或更新聊天线程)
  • chat.join.limited (一个更受限的 chat.join 版本,不允许添加或删除参与者)
  • voip.join (访问呼叫 API,但未授权启动新调用)
let { token } = await client.getToken(user, ["chat"]);

若要刷新用户令牌,请向同一用户颁发另一个令牌。

let { token } = await client.getToken(user, ["chat"]);

创建具有自定义过期时间的用户令牌

还可以通过自定义过期时间来创建通信标识访问令牌。 令牌的有效期必须在 [60,1440] 分钟范围内。 如果未提供,将使用默认值 1440 分钟 (24 小时) 。

const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let { token } = await client.getToken(user, ["chat"], tokenOptions);

在单个请求中创建用户和令牌

为方便起见,使用 createUserAndToken 创建新用户,并通过一个函数调用颁发令牌。 这转换为单个 Web 请求,而不是先创建用户,然后颁发令牌。

let { user, token } = await client.createUserAndToken(["chat"]);

在单个请求中创建具有自定义过期时间的用户和令牌

还可以通过自定义过期时间来创建通信标识访问令牌。 令牌的有效期必须在 [60,1440] 分钟范围内。 如果未提供,将使用默认值 1440 分钟 (24 小时) 。

const userAndTokenOptions: CreateUserAndTokenOptions = { tokenExpiresInMinutes: 60 };
let { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);

撤消用户的令牌

revokeTokens使用 方法吊销用户的所有颁发的令牌。

await client.revokeTokens(user);

删除用户

deleteUser使用 方法删除用户。

await client.deleteUser(user);

将 Teams 用户的 Azure AD 访问令牌交换为通信访问令牌

使用 getTokenForTeamsUser 方法将 Teams 用户的 Azure AD 访问令牌交换为具有匹配过期时间的新 CommunicationAccessToken 令牌。

await client.getTokenForTeamsUser({
  teamsUserAadToken: "<aad-access-token-of-a-teams-user>",
  clientId: "<cliend-id-of-an-aad-application>",
  userObjectId: "<aad-object-id-of-a-teams-user>",
});

故障排除

后续步骤

请查看 示例 目录,获取有关如何使用此库的详细示例。

贡献

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

曝光数